从 Pandas DataFrame 中的 YYYYMMDD 列中提取年份
Extract year from YYYYMMDD column in Pandas DataFrame
我有一个 pandas DataFrame,我想在其中创建一个仅包含我从 YYYYMMDD 格式的列中提取的年份的附加列。
在搜索论坛时,我找到了 to_datetime
命令,但对我来说它不起作用。
我尝试了以下方法:
df = pd.DataFrame({'name' : ['A','B'],
'date' :[20130102,20140511]})
df['date'] = pd.to_datetime(df['date'])
df['year'] = df['date'].dt.year
我得到的输出是:
date name year
0 1970-01-01 00:00:00.020130102 A 1970
1 1970-01-01 00:00:00.020140511 B 1970
但我想得到:
date name year
0 20130102 A 2013
1 20140511 B 2014
我也尝试过不使用 to_datetime
,因为我的日期不完全采用 yyyy-mm-dd 格式,但也无法做到这一点。
我希望你能帮我解决这个'newbie'问题,非常感谢!
这就是您所需要的,用于指定您提供日期的格式。
df['date'] = pd.to_datetime(df['date'],format='%Y%m%d')
我有一个 pandas DataFrame,我想在其中创建一个仅包含我从 YYYYMMDD 格式的列中提取的年份的附加列。
在搜索论坛时,我找到了 to_datetime
命令,但对我来说它不起作用。
我尝试了以下方法:
df = pd.DataFrame({'name' : ['A','B'],
'date' :[20130102,20140511]})
df['date'] = pd.to_datetime(df['date'])
df['year'] = df['date'].dt.year
我得到的输出是:
date name year
0 1970-01-01 00:00:00.020130102 A 1970
1 1970-01-01 00:00:00.020140511 B 1970
但我想得到:
date name year
0 20130102 A 2013
1 20140511 B 2014
我也尝试过不使用 to_datetime
,因为我的日期不完全采用 yyyy-mm-dd 格式,但也无法做到这一点。
我希望你能帮我解决这个'newbie'问题,非常感谢!
这就是您所需要的,用于指定您提供日期的格式。
df['date'] = pd.to_datetime(df['date'],format='%Y%m%d')