python - 熊猫填充以前日期的连续空日期值+恒定天数
问题描述
我有一个包含数据列的数据框
Comp_date
0 2020-04-24
1 NaT
2 NaT
3 NaT
4 2020-08-06
5 NaT
6 NaT
7 NaT
8 2020-08-22
9 NaT
我正在尝试用前一个日期的值填充空值+添加一个恒定的天数(10)。但我无法这样做。我尝试了以下
df['Comp_date']=df['Comp_date'].fillna((df['Comp_date'].shift()+pd.to_timedelta(10, unit='D')), inplace=True)
什么都没有发生,我得到了同样的结果。有什么帮助吗?预期结果
Comp_date
0 2020-04-24
1 2020-05-04
2 2020-05-14
3 2020-05-24
4 2020-08-06
5 2020-08-16
6 2020-08-26
7 2020-09-05
8 2020-08-22
9 2020-09-01
解决方案
我不清楚你的问题,但这会在最后一次观察到的天数上增加一个恒定的天数Comp_date
。
constant_number_of_days = 2
df2 = df['Comp_date'].ffill().to_frame()
df2.loc[df['Comp_date'].isnull(), 'Comp_date'] += pd.Timedelta(days=constant_number_of_days)
>>> df2
Comp_date
0 2020-04-24
1 2020-04-26
2 2020-04-26
3 2020-04-26
4 2020-08-06
5 2020-08-08
6 2020-08-08
7 2020-08-08
8 2020-08-22
9 2020-08-24
推荐阅读
- python - 使用 ConvLSTM2D 时,“ValueError:步幅的长度应为 1、1 或 3,但为 2”
- python - 通过 groupby 更改数据框并应用
- mfc - CRecordset 返回定位请求无法执行
- c++ - 如何在 C++ 中输入多行字符串?
- node.js - 是否可以等待 fs.watch 在将所有文件拖放到目录时检测到所有文件?
- java - 为什么我不能移动数组初始值设定项?
- javascript - 试图在我的数组中返回问题的值
- redis - Redis 中键的更改数据:如何找出更改它的原因
- amazon-web-services - 如何在本地运行和测试 Cloud-init?
- python - 如何计算数据框列中列表中单词的频率?