【发布时间】:2015-07-31 10:43:06
【问题描述】:
我有一个包含 2 列的数据框 df,如下所示 -
START_DATE MONTHS
0 2015-03-21 240
1 2015-03-21 240
2 2015-03-21 240
3 2015-03-21 240
4 2015-03-21 240
5 2015-01-01 120
6 2017-01-01 240
7 NaN NaN
8 NaN NaN
9 NaN NaN
2 列的数据类型是对象。
>>> df.dtypes
START_DATE object
MONTHS object
dtype: object
现在,我想通过添加 df['START_DATE'] 和 df['MONTHS'] 创建一个新列“结果”。所以,我做了以下 -
from dateutil.relativedelta import relativedelta
df['START_DATE'] = pd.to_datetime(df['START_DATE'])
df['MONTHS'] = df['MONTHS'].astype(float)
df['offset'] = df['MONTHS'].apply(lambda x: relativedelta(months=x))
df['Result'] = df['START_DATE'] + df['offset']
在这里,我收到以下错误 -
TypeError: incompatible type [object] for a datetime/timedelta operation
注意:想要将 df['Months'] 转换为 int,但由于该字段包含 Null,因此无法工作。
你能给我一些指示吗?谢谢。
【问题讨论】:
-
您遇到了哪个错误?请发布错误报告。
-
@Borja - 嗨。在我上面的编辑中添加了错误。谢谢。
标签: python python-2.7 python-3.x pandas ipython