我读了这个 ( How to create multiple dataframes from pandas groupby object ) 但是,我仍然不明白在使用 groupby 创建 grouped_persons 组后如何为每个人创建数据框。
How to create multiple dataframes from pandas groupby object
我应该在此代码中更改什么? 我认为这是我的问题的一部分:'df_'+ name +'1'
grouped_persons = df.groupby('Person')
for name, group in grouped_persons
'df_'+ name +'1' = df.loc[(df.Person == name) & (df.ExpNum == 1)]
File "", line 2 for name, group in grouped_persons ^ SyntaxError: invalid syntax
最佳答案
让你的DataFrame看起来像这样
df = pd.DataFrame([['Tim', 1, 2],
['Tim', 0, 2],
['Claes', 1, 3],
['Claes', 0, 1],
['Emma', 1, 1],
['Emma', 1, 2]], columns=['Person', 'ExpNum', 'Data'])
给予
>>> df
Person ExpNum Data
0 Tim 1 2
1 Tim 0 2
2 Claes 1 3
3 Claes 0 1
4 Emma 1 1
5 Emma 1 2
然后您将直接从 pandas groupby 对象中获取组数据帧
grouped_persons = df.groupby('Person')
通过
>>> grouped_persons.get_group('Emma')
Person ExpNum Data
4 Emma 1 1
5 Emma 1 2
并且不需要单独存储它们。
注意:使用的 Pandas 版本是 '0.23.1'
但此功能也可能在某些早期版本中可用。
编辑:如果您只对那些带有 ExpNum == 1
的条目感兴趣,我建议在 groupby 之前应用它,例如
grouped_persons_1 = df[df['ExpNum'] == 1].groupby('Person')
关于python - 使用 groupby 创建新数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51091331/