gpt4 book ai didi

python - Pandas — 匹配最后一个相同的行并计算差异

转载 作者:行者123 更新时间:2023-12-01 02:49:57 25 4
gpt4 key购买 nike

使用如下所示的 DataFrame:

         timestamp    value
0 2012-01-01 3.0
1 2012-01-05 3.0
2 2012-01-06 6.0
3 2012-01-09 3.0
4 2012-01-31 1.0
5 2012-02-09 3.0
6 2012-02-11 1.0
7 2012-02-13 3.0
8 2012-02-15 2.0
9 2012-02-18 5.0

添加 time_since_last_identical 列的优雅且有效的方法是什么,这样前面的示例将导致:

         timestamp    value   time_since_last_identical
0 2012-01-01 3.0 NaT
1 2012-01-05 3.0 5 days
2 2012-01-06 6.0 NaT
3 2012-01-09 3.0 4 days
4 2012-01-31 1.0 NaT
5 2012-02-09 3.0 31 days
6 2012-02-11 1.0 10 days
7 2012-02-13 3.0 4 days
8 2012-02-15 2.0 NaT
9 2012-02-18 5.0 NaT

问题的重要部分不一定是时间延迟的使用。任何将一个特定行与具有相同值的前一行相匹配并从这两行中计算出某些内容(此处为差异)的解决方案都将是有效的。

注意:对 apply 或基于循环的方法不感兴趣。

最佳答案

一个简单、干净、优雅的 groupby 就可以了:

df['time_since_last_identical'] = df.groupby('value').diff()

给予:

   timestamp  value  time_since_last_identical
0 2012-01-01 3.0 NaT
1 2012-01-05 3.0 4 days
2 2012-01-06 6.0 NaT
3 2012-01-09 3.0 4 days
4 2012-01-31 1.0 NaT
5 2012-02-09 3.0 31 days
6 2012-02-11 1.0 11 days
7 2012-02-13 3.0 4 days
8 2012-02-15 2.0 NaT
9 2012-02-18 5.0 NaT

关于python - Pandas — 匹配最后一个相同的行并计算差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44906319/

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