这里是熊猫和数据框的新功能! 初始数据框:
A 1238 100
A 1238 90
A 3784 200
A 3784 500
B 1222 274
B 1222 400
C 2747 800
C 1384 100
我需要输出为:(col C是col A和B分组数据的最小值,col B是分组数据的序列计数器):
A 1 90
A 2 200
B 1 274
C 1 800
C 2 100
帮助!
答案 0 :(得分:1)
如果在输出中更像3
列,则使用DataFrameGroupBy.idxmin
来表示每组C
的最小值的索引,并按DataFrame.loc
进行填充:
df1 = df.loc[df.groupby(['A','B'], sort=False)['C'].idxmin()]
如果输出中只有3列,则汇总min
:
df1 = df.groupby(['A','B'], as_index=False, sort=False)['C'].min()
然后通过GroupBy.cumcount
创建计数器列:
df1['B'] = df1.groupby('A').cumcount().add(1)
print (df1)
A B C
1 A 1 90
2 A 2 200
4 B 1 274
6 C 1 800
7 C 2 100