我有一个数据帧,如下所示:

import pandas as pd
data={'location':['LA','LA','SF','LA','SF','LA','SF'], 'col2': [1, 3, 5, 2, 8, 5, 7], 'col3': [11, 14, 54, 67, 2, 9, 45]}
df=pd.DataFrame(data,columns=['location', 'col2', 'col3'])
print df

 location  col2  col3
0       LA     1    11
1       LA     3    14
2       SF     5    54
3       LA     2    67
4       SF     8     2
5       LA     5     9
6       SF     7    45

我想按“位置”分组,然后取我所分组的所有行的最大值“col2”,但我不想取最大值“col3”。我希望“col3”的值与“col3”行的值相同,该行的最大值为“col2”。完成后,我希望数据帧的外观是:
  location  col2  col3
0       LA     5     9
1       SF     8     2

提前谢谢,如果有什么不清楚的地方请告诉我

最佳答案

groupby('location').col2如预期
但是,抓取idxmax()并在loc中使用此选项

df.loc[df.groupby('location').col2.idxmax()]

  location  col2  col3
5       LA     5     9
4       SF     8     2

关于python - Pandas -最多容纳一列多行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41514097/

10-12 21:14