当列是日期时,pd.pivot_table

问题描述 投票:1回答:1

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

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

任何帮助表示赞赏。

python pandas pivot-table
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.