当列是日期时,pd.pivot_table

时间:2017-12-23 12:25:30

标签: python pandas pivot-table

我有一张我想要转动的桌子

但是日期在列中,我不确定如何转动所有列,之后我可以pd.to_datetime并对其进行排序。

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

我认为你需要melt

df = df.melt(id_vars=['Country Name','Country Code'], value_name='year', var_name='val')
print (df.head())
  Country Name Country Code   val       year
0    Argentina          ARG  1961  20.310698
1       Brazil          BRA  1961  31.302529
2        Chile          CHL  1961   6.568982
3        China          CHN  1961  15.253994
4     Colombia          COL  1961   8.082284

set_indexstack

df = (df.set_index(['Country Name','Country Code'])
        .stack()
        .reset_index(name='val')
        .rename(columns={'level_2':'year'}))
print (df.head())
  Country Name Country Code  year        val
0    Argentina          ARG  1961  20.310698
1    Argentina          ARG  1962  28.871842
2    Argentina          ARG  1963  25.591154
3    Argentina          ARG  1964  28.774617
4    Argentina          ARG  1965  21.232935