【问题标题】:How to create multiple plots stratified based on the same column如何创建基于同一列分层的多个图
【发布时间】:2020-01-24 14:08:41
【问题描述】:

我正在使用 python 尝试遍历 pandas 数据框的列并绘制它们的数据,并根据受访者的等级对每一列进行分层。到目前为止,这是我的代码:

import pandas as pd
import seaborn as sns
import numpy as np
import matplotlib.pyplot as plt

def visualize():
    q = 0
    surveyData = pd.read_csv("Survey_1.csv")
    for (columnName, q) in enumerate(surveyData.iteritems()):  
        q += 1
        if(q > 2):
            plt.figure()
            ax = sns.barplot(x="grade", y=columnName, data=surveyData)
            plt.savefig(columnName) 

这是我收到的错误:

TypeError: '('grade', 0        Junior
1        Junior
2        Senior
3     Sophomore
4     Sophomore
5        Senior
6        Senior
7        Senior
8        Senior
9        Senior
10       Senior
11       Junior
12       Senior
13    Sophomore
14       Junior
15    Sophomore
16    Sophomore
17    Sophomore
18    Sophomore
19       Junior
20    Sophomore
21    Sophomore
22       Junior
23       Junior
24    Sophomore
25    Sophomore
26       Junior
27       Junior
Name: grade, dtype: object)' is an invalid key

“等级”是我尝试分层的列的正确名称,当我不尝试迭代所有其他列时,它可以作为输入,但在我迭代时不会。想知道是否有人有任何建议。谢谢!

【问题讨论】:

    标签: python pandas seaborn


    【解决方案1】:

    我不确定你想要绘制什么,但如果它是每个年级的计数,你应该尝试:

    import pandas as pd
    import seaborn as sns
    import numpy as np
    import matplotlib.pyplot as plt
    
    def visualize():
        df_count=pd.DataFrame()
        surveyData = pd.read_csv("Survey_1.csv")   
        df_count=surveyData.groupby('grade').count()
        ax=sns.barplot(x="grade", y="count", data=df_count)
        ax.savefig("gradecount.png")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-26
      • 2019-07-01
      • 1970-01-01
      • 2022-10-24
      • 1970-01-01
      • 2020-12-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多