Python Pandas 使用另一列的值进行 DateOffset

8 投票
2 回答
8207 浏览
提问于 2025-04-18 07:51

我原以为这件事会很简单,但下面的代码并没有达到我想要的效果。我只是想通过将天数加到一个已有的日期时间列上,来计算一个新的日期列,而这些天数是来自另一个列的值。我的“偏移量”列下面只有一位数的数字。

df['new_date'] = df['orig_date'].apply(lambda x: x + pd.DateOffset(days=df['offset']))

错误信息:不支持的类型用于时间差的天数组件:Series

谢谢你,

2 个回答

10

虽然有点晚了,但这可能对其他有同样疑问的人有帮助。其实有一种方法可以用向量化的方式来实现,这样速度会快很多。

df['new_date'] = df['orig_date'] + df['offset'].astype('timedelta64[D]'))
10
In [12]: df['C'] = df['A'] + df['B'].apply(pd.offsets.Day)

In [13]: df
Out[13]: 
           A  B          C
0 2013-01-01  0 2013-01-01
1 2013-01-02  1 2013-01-03
2 2013-01-03  2 2013-01-05
3 2013-01-04  3 2013-01-07
4 2013-01-05  4 2013-01-09

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。

撰写回答