考虑这个数据框
df = pd.DataFrame({'a': [1,2,1,3,4,2], 'c':['dd','ee','dd','as','ae','ee'], 'count':[5,9,1,6,8,3]})
a c count
0 1 dd 5
1 2 ee 9
2 1 dd 1
3 3 as 6
4 4 ae 8
5 2 ee 3
Run Code Online (Sandbox Code Playgroud)
如您所见,“a”列1 and 2中的重复项重复多次。
我想像在我们做 groupby 的 sql 中一样对 Pandas 中的此类进行求和。
我的最终 df 应该是这样的
a c count
0 1 dd 6
1 2 ee 12
2 3 as 6
3 4 ae 8
Run Code Online (Sandbox Code Playgroud)
我尝试使用
df = df.groupby('a')但它正在返回我
<pandas.core.groupby.DataFrameGroupBy object
Run Code Online (Sandbox Code Playgroud)
df = df.groupby(['a','c'], as_index=False)['count'].sum()
print (df)
a c count
0 1 dd 6
1 2 ee 12
2 3 as 6
3 4 ae 8
Run Code Online (Sandbox Code Playgroud)
但是,如果只需要 groupby 列a,则aggregate需要输出中需要的所有列 - 例如,列c是由first和count由聚合的sum:
df = df.groupby('a').agg({'c':'first', 'count':'sum'}).reset_index()
print (df)
a c count
0 1 dd 6
1 2 ee 12
2 3 as 6
3 4 ae 8
Run Code Online (Sandbox Code Playgroud)
你几乎已经拥有了
df.groupby(['a', 'c']).sum().reset_index()
Run Code Online (Sandbox Code Playgroud)
产量
a c count
0 1 dd 6
1 2 ee 12
2 3 as 6
3 4 ae 8
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8906 次 |
| 最近记录: |