Python:将两个日期相减后的timedelta值转换为整数数据类型(AttributeError)
我有以下由以下代码生成的数据集输出(如下所示):Python:将两个日期相减后的timedelta值转换为整数数据类型(AttributeError),python,pandas,integer,division,timedelta,Python,Pandas,Integer,Division,Timedelta,我有以下由以下代码生成的数据集输出(如下所示): df_EVENT5_5['dtin'] = pd.to_datetime(df_EVENT5_5['dtin']) df_EVENT5_5['age'] = df_EVENT5_5['dtin'].apply(dt.datetime.date) - df_EVENT5_5['dtbuilt'].apply(dt.datetime.date) id age 1 6252 days, 0:00:00 2 1800 days, 0:00:0
df_EVENT5_5['dtin'] = pd.to_datetime(df_EVENT5_5['dtin'])
df_EVENT5_5['age'] = df_EVENT5_5['dtin'].apply(dt.datetime.date) - df_EVENT5_5['dtbuilt'].apply(dt.datetime.date)
id age
1 6252 days, 0:00:00
2 1800 days, 0:00:00
3 5873 days, 0:00:00
df_EVENT5_5['age_no_days'] = df_EVENT5_5['age'].dt.total_seconds()/ (24 * 60 * 60)
在上述数据集中,在数据框上运行数据类型后,年龄似乎是一个对象
我想将“age”列转换为一个仅值为days的整数数据类型。下面是我想要的输出:
id age
1 6252
2 1800
3 5873
我尝试了以下代码:
df_EVENT5_5['dtin'] = pd.to_datetime(df_EVENT5_5['dtin'])
df_EVENT5_5['age'] = df_EVENT5_5['dtin'].apply(dt.datetime.date) - df_EVENT5_5['dtbuilt'].apply(dt.datetime.date)
id age
1 6252 days, 0:00:00
2 1800 days, 0:00:00
3 5873 days, 0:00:00
df_EVENT5_5['age_no_days'] = df_EVENT5_5['age'].dt.total_seconds()/ (24 * 60 * 60)
以下是错误:
AttributeError:只能将.dt访问器与datetimelike值一起使用获取对象列的事实向我表明,有些值无法解释为正确的TimeDelta。如果是这种情况,我将使用
pd.to_timedelta
和参数errors='concurve'
,然后调用dt.days
:
df['age'] = pd.to_timedelta(df['age'],errors='coerce').dt.days
>>> df
id age
0 1 6252
1 2 1800
2 3 5873
我得到以下错误-->溢出错误:int太大,无法转换