Преобразование кадра данных в пандах из итеративного списка в правильные столбцы и строки [дубликаты]

1

У меня есть dataframe, который выглядит

Country | IndicatorName | Value
Spain   | Indicator1    | 3
Spain   | Indicator2    | 4
Germany | Indicator16   | 24
......

И я хочу преобразовать его в dataframe с столбцами IndicatorName, рядами Country и пересечениями значений

Country | Indicator 1 | Indicator 2 | Indicator 3 | ......
Spain   |     3       |     4       |   16        | ......
Germany |     23      |     232     |   232       | ......
.......

Я пытаюсь через groupby (["IndicatorName", "Value"]), но не уверен, как действовать

import pandas as pd
indicators = pd.read_csv("Indicators.csv")
indicators.groupbby(["IndicatorName","Value"])
.....

Есть ли подходящий способ справиться с этим или это нужно делать с помощью итерации?

Теги:
pandas
dataframe
machine-learning

2 ответа

1

Я не уверен в формате inital df, так как желаемый df имеет разные значения.

Помогает ли ниже?

df = pd.DataFrame({'Country' : ['Spain', 'Spain', 'Germany'],
                   'IndicatorName':['Indicator1', 'Indicator2', 'Indicator16'],
                  'Value':[3, 4, 24]
                  })


df.pivot(index = 'Country', columns='IndicatorName', values='Value').fillna(0)


IndicatorName   Indicator1  Indicator16     Indicator2
    Country             
    Germany            0.0        24.0              0.0
    Spain              3.0         0.0              4.0
  • 0
    Нет проблем, пока это полезно :)
  • 0
    @arkaitz Jimenez Я пока не могу комментировать ваш пост. Это было очень полезно для меня в сводках stackoverflow.com/questions/47152691/how-to-pivot-a-dataframe
Показать ещё 3 комментария
0

Я думаю, что вам нужна pivot:

df1 = df.pivot(index='Country', columns='IndicatorName', values='Value')

Вывод строк вашего примера:

IndicatorName  Indicator1  Indicator16  Indicator2
Country                                           
Germany               NaN         24.0         NaN
Spain                 3.0          NaN         4.0

Ещё вопросы

Сообщество Overcoder
Наверх
Меню