gpt4 book ai didi

python - 如何在数据框 python 中每天捕获最后一个快照

转载 作者:行者123 更新时间:2023-12-05 08:46:47 25 4
gpt4 key购买 nike

我有一个这样的数据框:

                            A         B        C
2015-01-01 00:00:00 597.5259 376.1830 a
2015-01-01 00:00:00 461.2014 244.0453 a
2015-01-01 00:00:00 283.9003 166.5772 b
2015-01-01 09:04:00 93.5099 50.7761 a
2015-01-01 09:04:00 1.1559 0.2784 b
2015-01-01 09:31:00 95.0285 29.1006 a
2015-01-01 09:31:00 241.8822 120.1049 b
2015-01-01 12:16:00 363.8040 196.0568 a
2015-01-01 14:04:00 438.2264 274.3733 a
2015-01-01 16:30:00 456.3396 330.6650 a
2015-01-01 16:30:00 368.3211 0.2617 a
2015-01-01 16:30:00 456.3396 0.1939 b

2015-01-02 09:28:00 241.8822 120.1049 b
2015-01-02 09:28:00 212.3111 389.2911 b
2015-01-02 10:27:00 363.8040 196.0568 a
2015-01-02 13:02:00 438.2264 274.3733 a
2015-01-02 16:27:00 456.3396 330.6650 a
2015-01-02 16:27:00 368.3211 0.2617 a
2015-01-02 16:27:00 456.3396 0.1939 b
... ... ... ...

我想获取数据框中每一天的最后一张快照,即

                            A         B        C
2015-01-01 16:30:00 456.3396 330.6650 a
2015-01-01 16:30:00 368.3211 0.2617 a
2015-01-01 16:30:00 456.3396 0.1939 b

2015-01-02 16:27:00 456.3396 330.6650 a
2015-01-02 16:27:00 368.3211 0.2617 a
2015-01-02 16:27:00 456.3396 0.1939 b

本人初学python,思路是定义一个函数获取timestamp列表,选择列表的最后一个元素。但这对我来说非常复杂,我不知道如何执行。

我试过了

df = df.groupby(df.index).last()

df = df.groupby(df.index.timestamp).apply(lambda x: x.iloc[[0, -1]])

这些方法不起作用,因为每天最后一个快照的行数可能不同。你能帮我吗?非常感谢。

最佳答案

您可以按天分组并与上一个索引进行比较:

print (df.groupby(pd.Grouper(freq="D"), as_index=False).apply(lambda d: d[d.index==d.index[-1]]))

或者使用transform进行比较:

print (df[df.index==df.reset_index().groupby(pd.Grouper(key="index", freq="D"))["index"].transform("max")])

A B C
0 2015-01-01 16:30:00 456.3396 330.6650 a
2015-01-01 16:30:00 368.3211 0.2617 a
2015-01-01 16:30:00 456.3396 0.1939 b
1 2015-01-02 16:27:00 456.3396 330.6650 a
2015-01-02 16:27:00 368.3211 0.2617 a
2015-01-02 16:27:00 456.3396 0.1939 b

关于python - 如何在数据框 python 中每天捕获最后一个快照,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69057092/

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