如何根据每季度更新的数据补充每日数据?

2024-05-19 19:18:42 发布

您现在位置:Python中文网/ 问答频道 /正文

对于不同的用户,他们的数据每季度更新一次,但不在同一天更新

对于用户“a”,其数据的pd.系列为:

2018-01-01 556
2018-04-01 498
2018-07-02 318

日期是该系列的索引。 类似地,对于用户“b”,其数据为:

2018-01-02 123
2018-04-02 456
2018-07-01 789

首先,我想将季度数据转换为每日数据。例如,对于“a”,“2018-01-02”和“2018-03-31”之间的数据仍应为556,因为尚未更新

然后,我想在数据帧中连接“a”和“b”的数据。预期输出应该是:

             a    b
2018-01-01 556  NaN
2018-01-02 556  123
...
2018-03-31 556  123
2018-04-01 498  123
2018-04-02 498  456
2018-04-03 498  456
...
2018-06-30 498  456
2018-07-01 498  789
2018-07-02 318  789

有两个问题困扰着我:

  1. 如何补充缺失的日期
  2. “a”和“b”不是在同一天更新的。如何对齐它们

1条回答
网友
1楼 · 发布于 2024-05-19 19:18:42

使用^{}^{},通过ffill向前填充misisng值:

df = pd.concat([a, b], axis=1, keys=('a','b')).asfreq('D').ffill()
print (df)
                a      b
2018-01-01  556.0    NaN
2018-01-02  556.0  123.0
2018-01-03  556.0  123.0
2018-01-04  556.0  123.0
2018-01-05  556.0  123.0
          ...    ...
2018-06-28  498.0  456.0
2018-06-29  498.0  456.0
2018-06-30  498.0  456.0
2018-07-01  498.0  789.0
2018-07-02  318.0  789.0

[183 rows x 2 columns]

相关问题 更多 >