我有一个如下数据框:
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
我想分组"位置"然后取最大值#34; col2"我分组的所有行,但我不想要" col3"的最大值。我希望" col3"的值与" col3"的行具有相同的值,它具有max" col2"为那个位置。完成时我希望数据帧的外观如下:
location col2 col3
0 LA 5 9
1 SF 8 2
提前致谢,如果有任何不清楚的地方,请告诉我
答案 0 :(得分:5)
groupby('location').col2
idxmax()
并在loc
上使用此df
df.loc[df.groupby('location').col2.idxmax()]
location col2 col3
5 LA 5 9
4 SF 8 2