我有一个数据框架,看起来像这样:
primary_key event_date amount
x Jan-2014 100
x Feb-2014 90
我想计算每个primary_key的最小值(event_date),以及相关的金额。例如,x的min(date) = Jan-2014,而在Jan-2014中,x的金额是100,所以我想要这样的输出:
primary_key first_date amount
x Jan-2014 100
在SQL中,我习惯使用交叉应用来执行此操作。我怎么能在熊猫中这样做呢?
谢谢!
df.groupby("primary_key").apply(lambda d:d.loc[d.event_data.idxmin()])
或更快的版本:
idx = df.groupby("primary_key").B.event_data(pd.Series.idxmin)
res2 = df.loc[idx]
试试这个:
df.groupby(['primary_key','amount']).min()
请注意,我假设数据框架中的event_date字段位于pd中。时间戳或日期时间格式,且不是字符串。