Python 熊猫:聚合后每组的计数器列
新的熊猫和数据帧在这里! 初始数据帧:Python 熊猫:聚合后每组的计数器列,python,pandas,Python,Pandas,新的熊猫和数据帧在这里! 初始数据帧: A 1238 100 A 1238 90 A 3784 200 A 3784 500 B 1222 274 B 1222 400 C 2747 800 C 1384 100 我需要如下输出:(C列是A列和B列分组数据的最小值,B列是分组数据的序列计数器): 救命啊 如果在输出中更像3列,则使用C每组最小值的索引,请参见: 如果输出中只有3列,则聚合min: df1 = df.groupby(['A','B'], as_index=False
A 1238 100
A 1238 90
A 3784 200
A 3784 500
B 1222 274
B 1222 400
C 2747 800
C 1384 100
我需要如下输出:(C列是A列和B列分组数据的最小值,B列是分组数据的序列计数器):
救命啊 如果在输出中更像3
列,则使用C
每组最小值的索引,请参见:
如果输出中只有3列,则聚合min
:
df1 = df.groupby(['A','B'], as_index=False, sort=False)['C'].min()
然后通过以下方式创建计数器列:
谢谢@jezrael,这真的很有帮助。如何使用第一种方法添加一列以获得C的最大值?@wizkid Change
df1=df.groupby(['a','B'],as_index=False,sort=False)['C'].min()
到df1=df.groupby(['a','B'],as_index=False,sort=False)['C'].agg([('minC','min'),('maxC','max'))]]['C'].min()
到df1=df.groupby(['A','B'],sort=False)['C'].agg([('minC','min'),('maxC','max')))。重置索引()
,如果我的答案有用,别忘了-点击复选标记(✓答案旁边的代码>),将其从灰显切换为填充。谢谢。
df1 = df.loc[df.groupby(['A','B'], sort=False)['C'].idxmin()]
df1 = df.groupby(['A','B'], as_index=False, sort=False)['C'].min()
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