我正在处理有关加拿大财政转移的一些历史数据。下载的数据采用会计年度的格式,即
Year Quebec Alberta
1980-1981 2000 4000
1981-1982 3000 6000
我正在使用熊猫图书馆。但是,当我尝试使用matplot或sns进行任何可视化时,它会生成错误,要么无法将“ Year”识别为数值,要么会产生错误(“ DataFrame”对象没有属性“ Year”)。但是,当我将csv中的值更改为一年时,即
Year Quebec Alberta
1980 2000 4000
1981 3000 6000
它工作得很好。Python是否可以将1980-1981年这样的会计年度值与正常年份相同。任何建议将不胜感激。
您可以使用2年期限,但如果print DataFrame列看不到结束年份:
print (df)
Year Quebec Alberta
0 1980 2000 4000
1 1981 3000 6000
df['Year'] = df['Year'].apply(lambda x: pd.Period(x, freq='2A-DEC'))
print (df['Year'])
0 1980
1 1981
Name: Year, dtype: period[2A-DEC]
print (df['Year'].dt.to_timestamp('A', how='s'))
0 1980-12-31
1 1981-12-31
Name: Year, dtype: datetime64[ns]
print (df['Year'].dt.to_timestamp('A', how='e'))
0 1981-12-31 23:59:59.999999999
1 1982-12-31 23:59:59.999999999
Name: Year, dtype: datetime64[ns]
但我认为最容易的是为开始和结束年度创建2列:
print (df)
Year Quebec Alberta
0 1980-1981 2000 4000
1 1981-1982 3000 6000
df[['StartYear','EndYear']] = df['Year'].str.split('-', expand=True).astype(int)
print (df)
Year Quebec Alberta StartYear EndYear
0 1980-1981 2000 4000 1980 1981
1 1981-1982 3000 6000 1981 1982
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句