1. ホーム
  2. python

[解決済み] Pandasでデータフレームをピボットする方法は?重複

2022-03-04 18:52:17

質問

次のようなcsv形式の表があります。 このテーブルを、インジケータ名の列の値が新しい列になるように転置したいのですが、どうすればよいでしょうか?

Indicator       Country         Year   Value    
1               Angola          2005    6
2               Angola          2005    13
3               Angola          2005    10
4               Angola          2005    11
5               Angola          2005    5
1               Angola          2006    3
2               Angola          2006    2
3               Angola          2006    7
4               Angola          2006    3
5               Angola          2006    6

最終的にはこんな感じにしたいです。

Country    Year     1     2     3     4     5
Angola     2005     6     13    10    11    5
Angola     2006     3     2     7     3     6

pandasのデータフレームを使用してみましたが、あまり成功しませんでした。

print(df.pivot(columns = 'Country', 'Year', 'Indicator', values = 'Value'))

これを実現する方法について、何かご意見があればお聞かせください。

どのように解決するのですか?

を使用することができます。 pivot_table :

pd.pivot_table(df, values = 'Value', index=['Country','Year'], columns = 'Indicator').reset_index()

が出力されます。

 Indicator  Country     Year    1   2   3   4   5
 0          Angola      2005    6   13  10  11  5
 1          Angola      2006    3   2   7   3   6