根据以下数据帧聚合,我想给出“传统”DataFrame
格式。看起来很容易解决,但我很难得到它。
数据样本
import pandas as pd
df = pd.DataFrame({'col1':['A','A','A','A','B','B','B','A','C','C','C'],'col2':['foo','zzz','bar','foo','car','car','dog','bar','bar','zzz','bar']})
df
col1 col2
0 A foo
1 A zzz
2 A bar
3 A foo
4 B car
5 B car
6 B dog
7 A bar
8 C bar
9 C zzz
10 C bar
输出
df.groupby(['col1','col2'])['col1'].agg({'Frequency':'count'})
Frequency
col1 col2
A bar 2
foo 2
zzz 1
B car 2
dog 1
C bar 2
zzz 1
期望的输出
col1 col2 freq
A bar 2
A foo 2
A zzz 1
B car 2
B dog 1
C bar 2
C zzz 1
最佳答案
解决方案 1:
尝试使用以下命令重置 groupby
上的索引:
df.groupby(['col1','col2'])['col1'].agg({'Frequency':'count'}).reset_index()
col1 col2 Frequency
0 A bar 2
1 A foo 2
2 A zzz 1
3 B car 2
4 B dog 1
5 C bar 2
6 C zzz 1
解决方案 2:
创建groupby
时使用as_index=False
:
df.groupby(['col1','col2'], as_index=False)['col1'].agg({'Frequency':'count'})
col1 col2 Frequency
0 A bar 2
1 A foo 2
2 A zzz 1
3 B car 2
4 B dog 1
5 C bar 2
6 C zzz 1
关于python - 数据框聚合到数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49736045/