user9093916
user9093916

Reputation: 13

pd.pivot_table when columns are the dates

I have a table that I want to pivot

but the dates are in columns and I'm not sure how I can pivot all columns, after that I can pd.to_datetime and sort it.

any help is appreciated.

Upvotes: 1

Views: 64

Answers (1)

jezrael
jezrael

Reputation: 862681

I think you need 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

Or set_index with stack:

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

Upvotes: 1

Related Questions