DataFrame 宽数据变为长数据的方法----数据处理
宽数据要变为长数据是为了方便后续作图,比如boxplot需要长数据的格式 。
in[1]
df=pd.DataFrame({'X':['A','B','C'],'2010':[1,3,4],'2011':[3,5,2]})
df
out[1]
X 2010 2011
0 A 1 3
1 B 3 5
2 C 4 2
in[2]
df_melt=pd.melt(df,id_vars='X',var_name='year',value_name='value')
df_melt
out[2]
X year value
0 A 2010 1
1 B 2010 3
2 C 2010 4
3 A 2011 3
4 B 2011 5
5 C 2011 2
相应的,长数据变为宽数据如下
in[3]
df_pivot=df_melt.pivot_table(index='X',columns='year',values='value')
df_pivot=df_pivot.reset_index()
df_pivot
out[3]
year X 2010 2011
0 A 1 3
1 B 3 5
2 C 4 2