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