【问题标题】:Date Offset Pandas Field Based Off Another Field日期偏移 Pandas 字段基于另一个字段
【发布时间】:2020-08-11 19:45:52
【问题描述】:

我有一个数据框,其中包含带有日期的时间戳字段 time,以及另一列 period。如何根据periodtime添加天数?

电流输出:

time                 period
------------------------------
2020-04-28 10:00:00  1
2020-04-27 12:34:56  3

预期输出

time
---------------
2020-04-29 10:00:00
2020-04-30 12:34:56

如果我尝试df['time'] = df['time'] + pd.DateOffset(df['period']),我会收到错误TypeError:nargument must be an integer, got <class 'pandas.core.series.Series'>,因为它试图将整列传递给需要整数的函数。这如何实现?

【问题讨论】:

    标签: python pandas datetime time


    【解决方案1】:

    因为 to_timedelta 可以将天数转换为 timedeltas,所以可以使用:

    df['time'] = df['time'] + pd.to_timedelta(df['period'], unit='d')
    print (df)
                     time  period
    0 2020-04-29 10:00:00       1
    1 2020-04-30 12:34:56       3
    

    但如果想添加months 是必要的使用:

    df['time'] = df['time'] + df['period'].apply(lambda x: pd.DateOffset(months=x))
    print (df)
                     time  period
    0 2020-05-28 10:00:00       1
    1 2020-07-27 12:34:56       3
    

    如果使用month timedelatas'default month' 一起使用,那么精度是不同的:

    df['time'] = df['time'] + pd.to_timedelta(df['period'], unit='M')
    print (df)
                     time  period
    0 2020-05-28 20:29:06       1
    1 2020-07-27 20:02:14       3
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-12
      • 1970-01-01
      • 1970-01-01
      • 2010-11-13
      相关资源
      最近更新 更多