python - 在 pandas 中插入日期

标签 python pandas dataframe interpolation nan

我有一个带有日期列的数据框。大约有 7k 行,其中 10 行是 NaN。所以我想插入日期。我查看了文档,他们使用了 .interpolate() 。然而,当我尝试时,我没有得到想要的结果。

一个示例行:

0     November 1, 2019
1          May 1, 2017
2                  NaN
3    December 15, 2017
4        March 9, 2018

我的方法:

main_df['date_added'].interpolate(method='linear', inplace=True)

当我查看这些行时,它们仍然是 NaN。

有办法填写该日期吗?我的数据框中有 10 个这样的案例。

提前谢谢您。

最佳答案

您无法对 datetime 类型执行常规算术运算符,例如乘法/除法。所以你不能线性插值日期。一种选择是通过减去时间戳,然后除以句点,将日期转换为 float :

first_date=pd.to_datetime('1900-01-01')
periods = pd.Timedelta('1s')

(df['date'].sub(first_date).div(periods)
  .interpolate(method='linear')
  .mul(periods).add(first_date)
)

输出:

0   2019-11-01
1   2017-05-01
2   2017-08-23
3   2017-12-15
4   2018-03-09
Name: date, dtype: datetime64[ns]

关于python - 在 pandas 中插入日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66425158/

相关文章:

从网络读取文件名列表到 R

python - 修改数据框中的值

python - 使用 argparse 创建自定义命令行格式

python - 如何使用 Python 捕获输出并同时显示它?

python - 如何从 labels => 0,1,2,3.... 重命名 pandas 中的系列结构的索引?

python - numpy 3D图像数组到2D

Python Pandas 滚动函数

python - 如何检查是否给出了函数输入?

python - 重新索引数据框并连接列

python - 在 Python Pandas 中创建新的 QuarterEnd 列