嗨,我在原始数据集中有日期(列名称:“ earliest_cr_line”下),但是当我在Jupyter上检查dtype时,它是dtype('O'),因此我使用以下代码将以下代码转换为日期时间格式:
pd.to_datetime(final_3['earliest_cr_line'], format='%m/%d/%Y')
但是此代码将错误显示为ValueError:时间数据'Jan-85'与格式'%m /%Y'不匹配(匹配)
如何将整列转换为日期格式,然后创建另一列,以查看该日期与2015年6月30日之间的月份差异
如果所有日期时间都具有格式,MMM-YY
并且MMM
是月份的前3个字母,则使用以下名称:
print (final_3)
id earliest_cr_line
0 1077501 Jan-85
1 1077430 Apr-99
2 1077175 Nov-01
3 1076863 Feb-96
4 1075358 Jan-96
final_3['earliest_cr_line'] = pd.to_datetime(final_3['earliest_cr_line'], format='%b-%y')
final_3['diff'] = (pd.to_datetime('2015-06-30') - final_3['earliest_cr_line']).dt.days
print (final_3)
id earliest_cr_line diff
0 1077501 1985-01-01 11137
1 1077430 1999-04-01 5934
2 1077175 2001-11-01 4989
3 1076863 1996-02-01 7089
4 1075358 1996-01-01 7120
编辑:您可以减去100年的一些门槛,这里使用year > 2021
:
print (final_3)
id earliest_cr_line
0 1077501 Jan-63
1 1077430 Apr-99
2 1077175 Nov-01
3 1076863 Feb-96
4 1075358 Jan-96
final_3['earliest_cr_line'] = pd.to_datetime(final_3['earliest_cr_line'], format='%b-%y')
mask = final_3['earliest_cr_line'].dt.year > 2021
h = pd.DateOffset(years=100)
final_3.loc[mask, 'earliest_cr_line'] = final_3['earliest_cr_line'] - h
final_3['diff'] = (pd.to_datetime('2015-06-30') - final_3['earliest_cr_line']).dt.days
print (final_3)
id earliest_cr_line diff
0 1077501 1963-01-01 19173
1 1077430 1999-04-01 5934
2 1077175 2001-11-01 4989
3 1076863 1996-02-01 7089
4 1075358 1996-01-01 7120
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句