【问题标题】:Python Pandas groupby mean with "No numeric types to aggregate" errorPython Pandas groupby 意味着“没有要聚合的数字类型”错误
【发布时间】:2020-03-08 16:41:18
【问题描述】:

我正在尝试从 Excel 中计算一列的平均值。 我删除了名为“TFD”的列中的所有空值和“-”,并通过选择三列来形成一个新的数据框。我想用 groupby 计算新数据帧的平均值。但是有一个名为“没有要聚合的数字类型”的错误,我不知道为什么会出现这个错误以及如何修复它。

sheet=pd.read_excel(file)
sheet_copy=sheet
sheet_copy=sheet_copy[(~sheet_copy['TFD'].isin(['-']))&(~sheet_copy['TFD'].isnull())]
sheet_copy=sheet_copy[['Participant ID','Paragraph','TFD']]
means=sheet_copy['TFD'].groupby([sheet_copy['Participant ID'],sheet_copy['Paragraph']]).mean()

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    从您上面的电子表格 sn-p 看来,您的参与者 ID 和段落列的数据类型似乎是文本格式,这让我相信它们将是您数据框中的字符串?这使我相信这正是您的问题所在,即“没有要聚合的数字类型”异常

    接下来,这里有一些使用 pandas 文档中的 mean 子句进行分组的好例子:

    https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.core.groupby.GroupBy.mean.html

    如果您手头有数据集,我会亲自尝试并提供所用代码的 sn-p。

    【讨论】:

    • 您好!我刚刚通过添加 'sheet_copy=sheet_copy.astype(float)' 解决了它。
    • 完美!将 excel 表直接导入 pandas 总是很麻烦——值得检查要使用的变量的类型。很高兴你发现了这个问题:)
    猜你喜欢
    • 2019-06-23
    • 1970-01-01
    • 1970-01-01
    • 2012-10-02
    • 2021-08-07
    • 1970-01-01
    • 2018-10-07
    • 2020-02-06
    • 2014-11-23
    相关资源
    最近更新 更多