Я удивлен, что мне нужно задать этот вопрос. Я ожидаю, что решение будет простым.
Ситуация:
У меня есть 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. Я бы предположил, что мне нужно каким-то образом преобразовать таблицу данных (первая таблица) в «нормальный» кадр данных (вторая таблица). Это правильно? Если да, то как мне это сделать?