【发布时间】:2020-11-03 04:59:05
【问题描述】:
我想将包含月份数的列添加到包含日期的列中。到目前为止,我已经尝试过 (pd.DateOffset(months=plus_month_period)) 但是“月”不接受列,只是一个数字。我最成功的尝试如下:
dates = {'Date': ['24/04/2019','24/04/2019','2011/05/30'], 'Months':[2,12,100]}
df = pd.DataFrame(dates, columns = ['Date','Months'])
month_sum = pd.to_datetime(df['Date']).dt.to_period('m')
df['Add_month'] = ((month_sum + np.array(df['Months'])).dt.strftime('%Y/%m')).astype(str) + '/' + (pd.to_datetime(df['Date']).dt.day).astype(str)
print(pd.to_datetime(df['Add_month']))
这会导致:
0 2019-06-24
1 2020-04-24
2 2023-11-30
我对这个解决方案的问题是,在创建列 df['Add_month'] 时,我基本上是在末尾添加一个硬编码字符串,以尝试添加“day”部分,有时会导致计算不准确。有没有更直接的方法来添加 Months 列和 Date 列?
【问题讨论】:
标签: python pandas date timestamp multiple-columns