【问题标题】:Interpolate date in pandas在熊猫中插入日期
【发布时间】:2021-05-31 03:45:14
【问题描述】:

我有一个带有日期列的数据框。几乎有 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 个这样的案例。

提前谢谢你。

【问题讨论】:

  • 您的日期格式不正常。您是否使用自定义显示?您的专栏的 dtype 是什么?

标签: python pandas dataframe interpolation nan


【解决方案1】:

你不能在 datetime 类型上做通常的算术运算符,例如乘法/除法。所以你不能线性地插入日期。一种选择是将日期转换为浮点数,方法是减去时间戳,然后除以句点:

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]

【讨论】:

    猜你喜欢
    • 2019-05-20
    • 1970-01-01
    • 2017-08-03
    • 1970-01-01
    • 2021-09-16
    • 2015-10-13
    • 2020-01-05
    • 2014-10-14
    • 2013-10-26
    相关资源
    最近更新 更多