Как повернуть фрейм данных в Pandas? [дубликат]

этот вопрос уже есть ответ здесь:

у меня есть таблица в формате 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'))

есть мысли о том, как это сделать?

спасибо

2 ответов


можно использовать 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", но фрейм данных Pandas, импортированный из a '.КШМ'.

чтобы повернуть эту таблицу, вам нужно три аргумента в ваших панд "pivot". например, если df ваш фрейм данных:

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

Это должно должны даст желаемый результат.