gpt4 book ai didi

python - pandas:根据时间序列数据中的索引查找最新值

转载 作者:行者123 更新时间:2023-12-01 04:44:16 24 4
gpt4 key购买 nike

我有很多带有时间戳的客户交易数据。我从平面文件中以 block 的形式读取数据。我想知道如何有效地找到客户最近(最后)完成的交易。

示例数据:

id    login    transaction_id    transaction_date
1 asdf 1 13-10-2015 15:30:45
2 fghd 2 13-10-2015 16:30:45
4 rteu 3 13-10-2015 17:30:45
2 fghd 4 13-10-2015 18:30:45
3 rtey 5 13-10-2015 19:30:45
5 lkiu 6 13-10-2015 20:30:45

在此示例数据中,我想获取以下数据帧。此数据可能会跨文件分割。

login    transaction_count    last_transaction_id
asdf 1 1
fghd 2 4
rtey 1 5
rteu 1 3
lkiu 1 6

最佳答案

如果您想按交易日期获取最新交易:

In [43]: res = df.sort('transaction_date', ascending=False).groupby('login').agg({'transaction_id': ['size', 'first']})
In [44]: res.columns = ['transaction_count', 'last_transaction_id']
In [46]: res
Out[46]:
transaction_count last_transaction_id
login
asdf 1 1
fghd 2 4
lkiu 1 6
rteu 1 3
rtey 1 5

或者,如果您只想获取每个组的最大 id,那么更容易:

In [47]: res = df.groupby('login').agg({'transaction_id': ['size', 'max']})
In [48]: res.columns = ['transaction_count', 'last_transaction_id']
In [49]: res
Out[49]:
transaction_count last_transaction_id
login
asdf 1 1
fghd 2 4
lkiu 1 6
rteu 1 3
rtey 1 5

关于python - pandas:根据时间序列数据中的索引查找最新值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29843394/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com