このような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
これは推測です。「。csv」ファイルではなく、「。csv」からインポートされたPandas DataFrameです。
このテーブルをピボットするには、Pandas "pivot"に3つの引数が必要です。たとえば、df
がデータフレームの場合:
table = df.pivot(index='Country',columns='Year',values='Value')
print (table)
これはshould必要な出力を与えるはずです。