令我惊讶的是我不得不问这个问题。我希望解决方案很简单。
情况:
我有一些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子句中使用了它们。我猜想我将不得不以某种方式将数据帧表(第一个表)转换为“正常”数据帧(第二个表)。这个对吗?如果是这样,我该怎么做?