如何在Python中使用会计年度值?
我正在研究加拿大财政转移支付的一些历史数据。下载的数据采用会计年度格式,即如何在Python中使用会计年度值?,python,pandas,dataframe,data-visualization,Python,Pandas,Dataframe,Data Visualization,我正在研究加拿大财政转移支付的一些历史数据。下载的数据采用会计年度格式,即 Year Quebec Alberta 1980-1981 2000 4000 1981-1982 3000 6000 Year Quebec Alberta 1980 2000 4000 1981 3000 6000 我正在使用熊猫图书馆。但是,当我尝试使用matplot或sns进行任何可视化时,它会生成一个错误,要么不将“Year”识别为数值,要么(
Year Quebec Alberta
1980-1981 2000 4000
1981-1982 3000 6000
Year Quebec Alberta
1980 2000 4000
1981 3000 6000
我正在使用熊猫图书馆。但是,当我尝试使用matplot或sns进行任何可视化时,它会生成一个错误,要么不将“Year”识别为数值,要么(“DataFrame”对象没有属性“Year”)。但是,当我将csv中的值更改为一年时,即
Year Quebec Alberta
1980-1981 2000 4000
1981-1982 3000 6000
Year Quebec Alberta
1980 2000 4000
1981 3000 6000
它工作得非常好。Python是否有办法将1980-1981财年的值与正常年份一样对待。任何建议都将不胜感激。您可以使用2年,但如果打印数据框列无法看到年底:
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 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
但我认为最简单的方法是为年初和年末创建两列:
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 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
您可以使用2年,但如果打印数据框列看不到年底:
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 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
但我认为最简单的方法是为年初和年末创建两列:
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 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
伟大的非常感谢。伟大的非常感谢。