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:当然,添加了另一个选项