Python 如何将对象YYYYM1 YYYYM2转换为月份和年份

Python 如何将对象YYYYM1 YYYYM2转换为月份和年份,python,pandas,datetime,timestamp,Python,Pandas,Datetime,Timestamp,我有一套贸易统计数据。数据格式如下: reporter partner Time Period export import 0 Argentina United States 1990M2 1.304801e+08 5.984441e+07 1 Argentina United States 1990M3 1.237417e+08 5.092350e+07 2 Argentina Un

我有一套贸易统计数据。数据格式如下:

    reporter    partner         Time Period export          import
0   Argentina   United States   1990M2      1.304801e+08    5.984441e+07
1   Argentina   United States   1990M3      1.237417e+08    5.092350e+07
2   Argentina   United States   1990M4      1.020971e+08    4.884196e+07
3   Argentina   United States   1990M5      1.569232e+08    5.583000e+07
4   Argentina   United States   1990M6      1.539624e+08    6.869098e+07
5   Argentina   United States   1990M7      1.491639e+08    6.207464e+07
6   Argentina   United States   1990M8      1.675413e+08    8.482295e+07
7   Argentina   United States   1990M9      1.459988e+08    7.731452e+07
8   Argentina   United States   1990M10     1.613134e+08    1.061588e+08
9   Argentina   United States   1990M11     1.392604e+08    9.931942e+07
10  Argentina   United States   1990M12     1.266004e+08    1.003602e+08
11  Argentina   United States   1991M1      1.183864e+08    8.458743e+07
12  Argentina   United States   1991M2      1.107058e+08    7.544877e+07
13  Argentina   United States   1991M3      1.034667e+08    7.632608e+07
14  Argentina   United States   1991M4      1.078808e+08    9.906306e+07
等等


“时间段”变量是Dtype对象。我想更改“Time Period”变量的格式,这样我可以得到1990年2月而不是1990平方米,1990年3月而不是1990平方米,等等。

使用
pd转换为datetime64数据类型。使用指定的
格式
转换为datetime
,并使用
dt
访问器提取年份。例:

df['year'] = pd.to_datetime(df['Time Period'], format='%YM%m').dt.year
如果愿意,还可以通过
dt.month
提取月份


或者,您可以拆分“M”上的字符串,并将其转换为两个单独的dtype int列,例如

df[['Y','M']] = df["Time Period"].str.split("M", expand=True).astype(int)

提取不是问题。我用了一种天真的方法
left=df['timeperiod'].str[:4]df['year']=left
这给出了与
pd相同的结果。到datetime
我不能只重新格式化“Time Period”列而不分别提取年份和月份吗?@dr\u phd1:当然,添加了另一个选项