创建熊猫dataframes修真
问题描述:
的功能,我有一个叫做迪尔列包含五个值的数据框:N,S,E,W和C我它们拆分为单独dataframes像这样:创建熊猫dataframes修真
df_N = df[(df['Dir'] == 'N')]
df_S = df[(df['Dir'] == 'S')]
df_E = df[(df['Dir'] == 'E')]
df_W = df[(df['Dir'] == 'W')]
df_C = df[(df['Dir'] == 'C')]
但是,我想创建一个函数或列表理解,为我这样做,所以如果数据中的值改变,我不必重新编码它。
我创建了值的列表,像这样:
CP_Vals = Series.unique(dftc2['iDir']).tolist()
但没有在Python很大OFD的经验,我努力创造一些自动执行此。我在想这样的事:
for x in CP_Vals:
df_x = df[(df['iDir'] == '%s' % x)]
这可能吗?提前致谢!
答
您可以使用字典来存储您获得的不同数据框以及相应的关键名称。示例 -
CP_Vals = dftc2['iDir'].unique().tolist()
df_dict = {'df_{}'.format(x): df[(df['iDir'] == x)] for x in CP_Vals}
请注意,字典理解只适用于Python 2.7+。此外,在此之后,您可以访问特定的数据帧,例如df_dict['df_N']
等。
请问您为什么需要这样做?你已经可以使用'df ['Dir']。unique()'获得唯一的值,那么你可以不仅仅使用这些值来过滤你的df,而是为每个值创建新的dfs? – EdChum
我将为N,S,E,W和C值创建单独的列以合并到另一个数据集。 – Tom
您仍然可以实现这一点,而不必通过使用唯一值过滤主df来创建新的dfs,只是建议 – EdChum