Python pandas:检索与另一个最小值相关联的字段(交叉应用等效)



我有一个数据框架,看起来像这样:

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中。时间戳或日期时间格式,且不是字符串。

最新更新