我有一个包含3列的数据帧df:
df=pd.DataFrame({
'User':['A','A','B','A','C','B','C'],
'Values':['x','y','z','p','q','r','s'],
'Date':[14,11,14,12,13,10,14]
})
我想创建一个新的数据框,其中包含对应于'日期'中最高值的行。每个用户的列。例如,对于上面的数据帧,我希望所需的数据帧如下(它是一个jpeg图像):
任何人都可以帮我解决这个问题吗?
答案 0 :(得分:3)
此答案假设Values
列中每位用户的最大值不同:
In [10]: def get_max(group):
...: return group[group.Date == group.Date.max()]
...:
In [12]: df.groupby('User').apply(get_max).reset_index(drop=True)
Out[12]:
Date User Values
0 14 A x
1 14 B z
2 14 C s