gpt4 book ai didi

python - 扩大 Pandas 日期范围

转载 作者:行者123 更新时间:2023-12-02 00:57:50 26 4
gpt4 key购买 nike

我有这样的数据。每行代表该 ID 在某个日期的一个值。

ID   Date         Value
A 2012-01-05 50
A 2012-01-08 100
A 2012-01-10 200
B 2012-07-01 10
B 2012-07-03 20

我需要扩展它,以便我整天都有行。每天的值应该是前一天的值(即,将上面的数据视为值的更新,将下面的数据视为值的时间序列)。

ID   Date         Value
A 2012-01-05 50
A 2012-01-06 50
A 2012-01-07 50
A 2012-01-08 100
A 2012-01-09 100
A 2012-01-10 200
B 2012-07-01 10
B 2012-07-02 10
B 2012-07-03 20

目前,我有一个解决方案,如下所示:

  • 按 ID 分组
  • 对于每个组,计算出最短和最长日期
  • 创建 pd.date_range
  • 同时迭代行和日期范围,填充日期范围中的值,并在必要时增加指向行的索引指针
  • 将所有这些日期范围附加到最终数据框

它有效,但似乎是一个非常糟糕的暴力解决方案。我想知道Pandas是否支持更好的方法?

最佳答案

使用resampleDate 索引数据帧上,使用 ID 组和 ffillvalue

In [1725]: df.set_index('Date').groupby('ID').resample('1D')['Value'].ffill().reset_index()
Out[1725]:
ID Date Value
0 A 2012-01-05 50
1 A 2012-01-06 50
2 A 2012-01-07 50
3 A 2012-01-08 100
4 A 2012-01-09 100
5 A 2012-01-10 200
6 B 2012-07-01 10
7 B 2012-07-02 10
8 B 2012-07-03 20

关于python - 扩大 Pandas 日期范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46161110/

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