python - 使用 groupby 创建新的数据框
问题描述
我读了这篇文章(如何从熊猫 groupby 对象创建多个数据框)但是,在我使用 groupby 创建 grouped_persons 组后,我仍然不明白如何为每个人创建我的数据框。
我应该在这段代码中改变什么?我认为这是我的问题的一部分:'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)]
文件“”,名称的第 2 行,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')
推荐阅读
- swift - 强制完成 SKAction.move - swift
- protocols - 我正在尝试在协议扩展中使用“objectWillChange.send()”,但它不起作用,知道为什么吗?
- python - 如何绘制具有相似大小的重叠正方形?
- php - 嵌套数组路径作为变量
- ios - TableView 重新加载数据后跳到顶部。我尝试了一些在这里找到的解决方案,但都没有奏效。请检查说明
- java - java.lang.ArrayStoreException:sun.reflect.annotation.TypeNotPresentExceptionProxy 当gradle构建
- javascript - Shiny 应用程序是否有“将页面另存为 PDF”?
- mysql - 解释一下这两个 SQL 查询的区别?
- c++ - 如何在线程中初始化对象,然后在其他地方使用它?
- flutter - 我可以从我的应用(Flutter Android 和 IOS)直接拨打电话吗?