python - 使用 groupby 创建新数据框

标签 python python-3.x loops dataframe pandas-groupby

我读了这个 ( 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/

相关文章:

python - Python 对于大型应用程序是否足够好?

python - 无法在 Pandas 数据框中用零填充 NaN

python - 随机数列表生成器未按预期工作(Python)

Python - 如何嵌套文件读取循环?

java - 如何在 while 循环内使用按钮的 Action 监听器?

python - 从字符串中删除重复字符

Python - 打字 - 可订阅类型的联合

python - 多个gpus(1080Ti)在tensorflow中不加速训练,在cifar10_estimator代码上测试

python - 以编程方式从其他函数列表中定义新函数

mysql - foreach 循环将多行插入数据库