如何在 Pandas 中旋转数据框?
How to pivot a dataframe in Pandas?
我有一个 csv 格式的 table,看起来像这样。我想转置 table 以便指标名称列中的值是新列,
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。
要调整此 table,您需要在 Pandas "pivot" 中添加三个参数。例如,如果
df
是您的数据框:
table = df.pivot(index='Country',columns='Year',values='Value')
print (table)
这应该应该 给出所需的输出。
我有一个 csv 格式的 table,看起来像这样。我想转置 table 以便指标名称列中的值是新列,
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。
要调整此 table,您需要在 Pandas "pivot" 中添加三个参数。例如,如果
df
是您的数据框:
table = df.pivot(index='Country',columns='Year',values='Value')
print (table)
这应该应该 给出所需的输出。