我有以下数据帧:
import pandas as pd
df= pd.DataFrame({'type':['Asset','Liability'],'Amount':\
[10,-5],'Maturity Date':['2018-01-22','2018-01-23'],\
'Original Maturity':[1,2]})
我想在几天内将“原始成熟度”列添加到“到期日”列。我尝试过类似的东西:
df['Maturity Date']=df['Maturity Date']+pd.to_datetime(df['Original Maturity']).dt.days
但得到一个错误。有什么建议 ?
假设df['Maturity Date']
是datetime类型:
In [24]: df['Maturity Date'] += pd.to_timedelta(df['Original Maturity'], unit='D')
In [25]: df
Out[25]:
Amount Maturity Date Original Maturity type
0 10 2018-01-23 1 Asset
1 -5 2018-01-25 2 Liability
如果df['Maturity Date']
是字符串dtype,则需要先将其转换为datetime:
df['Maturity Date'] = pd.to_datetime(df['Maturity Date'])
这应该工作:
df['Maturity Date'] = pd.to_datetime(df['Maturity Date'])
df['Maturity Date'] += df['Original Maturity'].map(pd.offsets.Day)