Python 熊猫。按索引分组并为列应用最大值
我试图将dataframe按3个元素分组,并希望从组中获取列值最高的行,但Python 熊猫。按索引分组并为列应用最大值,python,pandas,pandas-groupby,Python,Pandas,Pandas Groupby,我试图将dataframe按3个元素分组,并希望从组中获取列值最高的行,但max方法适用于所有列。我怎样才能做到这一点 我所做的: In [69]: fr Out[69]: ping delta 0 1516190798773 161 1 1516191845372 143 2 1516192904988 144 3 1516193952748 295 4 1516195008033 233 5 15161960
max
方法适用于所有列。我怎样才能做到这一点
我所做的:
In [69]: fr
Out[69]:
ping delta
0 1516190798773 161
1 1516191845372 143
2 1516192904988 144
3 1516193952748 295
4 1516195008033 233
5 1516196049407 252
In [70]: fr.groupby(fr.index / 3).max()
Out[70]:
ping delta
0 1516192904988 161
1 1516196049407 295
我想要得到的结果是:
ping delta
0 1516190798773 161
1 1516193952748 295
如果希望
列中的第一个值和增量中的最大值值:
df = fr.groupby(fr.index // 3).agg({'delta':'max','ping':'first'})
print (df)
ping delta
0 1516190798773 161
1 1516193952748 295
如果需要delta
和所有相关行中的max
值:
df = fr.loc[fr.groupby(fr.index // 3)['delta'].idxmax()]
print (df)
ping delta
0 1516190798773 161
3 1516193952748 295
更好的差异样本:
print (fr)
ping delta
0 1516190798773 161
1 1516191845372 143
2 1516192904988 144
3 1516193952748 233 <-swapped values 233
4 1516195008033 295 <-swapped values 295
5 1516196049407 252
df = fr.groupby(fr.index // 3).agg({'delta':'max','ping':'first'})
print (df)
ping delta
0 1516190798773 161
1 1516193952748 295
df = fr.loc[fr.groupby(fr.index // 3)['delta'].idxmax()]
print (df)
ping delta
0 1516190798773 161
4 1516195008033 295
打印(fr)
平三角洲
0 1516190798773 161
1 1516191845372 143
2 1516192904988 144
3 1516193952748 233