【发布时间】:2020-11-28 00:39:58
【问题描述】:
我有一个如下的熊猫数据框:
import pandas as pd
df = pd.DataFrame({'date1':['12/1/2019','12/1/2019','12/1/2019'], 'nb_months':[11,11,12]})
df['date1'] = pd.to_datetime(df['date1'], format='%m/%d/%Y', errors='coerce').dropna()
df
date1 nb_months
0 2019-12-01 11
1 2019-12-01 11
2 2019-12-01 12
我想将 nb_months 添加到 date1 列。我确实尝试了下面的代码,但输出不是我所期望的。下面的代码给了我 1 个之前的日期作为输出(例如第一行:date3 应该是 2019-12-01 + 11 个月 = 2020-11-01而我得到 2020-10-31。
df['date3'] = df.apply(lambda x: x['date1'] + pd.offsets.MonthEnd(x['nb_months']), axis=1)
df
date1 nb_months date3
0 2019-12-01 11 2020-10-31
1 2019-12-01 11 2020-10-31
2 2019-12-01 12 2020-11-30
我的预期输出:
date1 nb_months date3
0 2019-12-01 11 2020-11-01
1 2019-12-01 11 2020-11-01
2 2019-12-01 12 2020-12-01
【问题讨论】:
-
技术上是正确的,你要的是加
nb_months+1天
标签: pandas python-3.6