尝试在Seaborn中查看交叉表时收到TypeError

时间:2018-09-29 02:18:45

标签: python pandas typeerror seaborn

我正在尝试从交叉表创建基本的条形图。

我写道:

# Crosstab: Impact YN x Engagement
impact_action_table_eng = 
pd.crosstab(df.Engagement,df.impact_action_yn_new)
print(impact_action_table_eng)

impact_action_yn_new    0    1
Engagement                    
0                     566  310
0                       1    1
1                     676  410
2                       0    1
2a                    508  404
2b                    587  303
3                     683  671
4                     172  357
5                      31  237

然后要对其进行可视化。

# Crosstab: Impact YN x Engagement - Viz

stacked_imp_eng = impact_action_table_eng.stack().reset_index().rename(columns={0:'value'})
sns.barplot(x=stacked_imp_eng.Engagement, y=stacked_imp_eng.impact_action_yn_new, hue=stacked_imp_eng.impact_action_yn_new)

我收到一个TypeError:/:str和int不支持的操作数类型。我认为这意味着需要更改数据类型,但是我不确定是哪一种...还是这是正确的更改(我尝试过更改为几种数据类型,但仍然收到类型错误)。

Impact_action_yn_new是int64,而eng是str。然后,我将Impact_action_yn_new转换为str,但尚未解决问题。

我在这里需要做什么?我一直在谷歌搜索并且被卡住。

谢谢!

1 个答案:

答案 0 :(得分:1)

您将yhue都设置在同一列impact_action_yn_new中。尽管我无法使用Seaborn 0.9.0重现此错误,但这可能是错误的来源。无论如何,使y等于hue可能没什么用!

使用y='value'hue='impact_action_yn_new'给出以下内容:

sns.barplot(x=stacked_imp_eng.Engagement, 
            y=stacked_imp_eng.value,
            hue=stacked_imp_eng.impact_action_yn_new)

barplot result