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

Я удивлен, что мне нужно задать этот вопрос. Я ожидаю, что решение будет простым.

Ситуация:

У меня есть pandas .DataFrame df. Я делаю группы и агрегацию на нем, например так:

df.groupby(
    ['colA','colB']
).agg(
    {
    'colC': "count"
    }
) 

Таким образом, мы группируемся по colA и colB и выполняем агрегацию (считая количество вхождений в данном случае) на colC ,

Результат будет выглядеть примерно так (первая таблица):

+------------+------------+------------+
| colA       | colB       | colC       |
+============+============+============+
| 1          | A          | 42         |
+------------+------------+------------+
|            | B          | 43         |
+------------+------------+------------+
|            |            | 44         |
+------------+------------+------------+

Теперь я хочу визуализировать эту таблицу с помощью seaborn. Логично, что это должно работать, потому что первая таблица представляет собой

+------------+------------+------------+
| colA       | colB       | colC       |
+============+============+============+
| 1          | A          | 42         |
+------------+------------+------------+
| 1          | B          | 43         |
+------------+------------+------------+
| 1          | B          | 44         |
+------------+------------+------------+

, которую легко представить (вторая таблица). Мой код для визуализации выглядит так:

g = sns.catplot(x="colA", y="colC", hue="colC") # some more params

Я получаю ошибку Could not interpret input 'colA'. Я предполагаю, что это так, потому что colA и colB рассматриваются как ключи, так как я использовал их в предложении groupby. Я бы предположил, что мне нужно каким-то образом преобразовать таблицу данных (первая таблица) в «нормальный» кадр данных (вторая таблица). Это правильно? Если да, то как мне это сделать?

...