Как просмотреть или изменить значения в мультииндексном фрейме данных в python - PullRequest
0 голосов
/ 05 февраля 2020

У меня есть фрейм данных со следующей структурой:

      Cluster 1                Cluster 2                Cluster 3
ID     Name     Revenue    ID    Name   Revenue    ID     Name   Revenue
1234   John     123        1235  Jane   761        1237   Mary   276
1376   Peter    254        1297  Paul   439        1425   David  532

Однако я не уверен, как выполнять базовые c функции, такие как .unique или .value_count для столбцов, так как я не уверен, как ссылаться для них в коде ...

Например, если я хочу увидеть уникальные значения в столбце Имя кластера 2, как бы я это закодировал? Обычно я набираю df.Name.unique() или df['Name'].unique(), но ни одна из этих работ не работает.

Мои исходные данные выглядели так:

ID     Name     Revenue     Cluster
1234   John     123         1
1235   Jane     761         2
1237   Mary     276         3
1297   Paul     439         2
1376   Peter    254         1
1425   David    532         3

И я использовал этот код, чтобы добраться до моего текущего точка:

df = (df.set_index([df.groupby('Cluster').cumcount(), 'Cluster'])
        .unstack()
        .swaplevel(1,0, axis=1)
        .sort_index(axis=1)
        .rename(columns=lambda x: f'Cluster {x}', level=0))```

1 Ответ

0 голосов
/ 05 февраля 2020

Вам просто нужно задать индекс по порядку в последовательности.

Таким образом, ваш первый шаг - создать кластер 2 и получить уникальные имена.

Например:

df["Cluster 2"]["Names"].unique()
...