我有一个" 1000行* 4列"数据帧:
a b c d
1 aa 93 4
2 bb 32 3
...
1000 nn 78 2
**[1283 rows x 4 columns]**
我使用groupby根据3列对它们进行分组:
df.groupby(['a','b','c']).sum()
print(df)
a b c d
1 aa 93 12
2 bb 32 53
...
1000 nn 78 38
**[1283 rows x 1 columns]**
然而,结果给了我一个" 1000行* 1列"数据帧。所以我的问题是,如果Groupby将列连接为一列?如果是,我该如何防止这种情况。我想在分组之后绘制我的数据,但我不能,因为它只能看到一列而不是全部4列。
编辑:当我调用列时,我只会收到最后一列,这意味着它无法读取' a''''' c&# 39;作为列,为什么这样,我怎么能再将它们标记为列。
df.columns
Index([u'd'], dtype='object')
答案 0 :(得分:1)
你可以这样做:
df.groupby(['a','b','c'], as_index=False).sum()
或:
df.groupby(['a','b','c']).sum().reset_index()