【问题标题】:python pandas frequency tablepython pandas频率表
【发布时间】:2013-11-05 07:59:22
【问题描述】:

我有一个包含 3 列的数据框:

  • 主题
  • 学校
  • 通过(True/False,用于通过主题)

每一行都是一个学生。对于每所学校,我想按学科获得每所学校通过的学生百分比。所以我想要一个数据透视表,其中行作为学校,列作为科目,值作为分数传递。

任何帮助将不胜感激。

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    你可以使用pivot_table():

    df.pivot_table(rows='school', values='passed', cols='subject')
    

    默认func参数是mean,所以你不必重写它:

    >>> df = pd.DataFrame({'subject':['CS', 'Biology', 'Math', 'CS', 'CS'], 'school':['Stanford', 'Princeton', 'Stanford', 'Stanford', 'Stanford'], 'passed':[True,True,True,False,False]})
    >>> df.pivot_table(rows='school', values='passed', cols='subject')
    subject    Biology        CS  Math
    school                            
    Princeton        1       NaN   NaN
    Stanford       NaN  0.333333     1
    

    【讨论】:

    • 查看示例,它完全适用于布尔值。如果您愿意,可以使用自己的 aggfunc
    猜你喜欢
    • 2018-11-26
    • 2014-12-16
    • 1970-01-01
    • 1970-01-01
    • 2019-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多