Pandas groupby并将函数应用于数字列

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Pandas groupby并将函数应用于数字列相关的知识,希望对你有一定的参考价值。

我正在尝试将shapiro-wilk测试应用于我的数据帧,该数据帧根据两个分类变量分组:

df.groupby(['category 1', 'category 2']).apply(stats.shapiro)

这会导致错误,表明它无法将字符串转换为float。其中唯一的非数字列是我用来拆分数据帧的两个类别。

我如何解决它?

编辑:

示例数据:

cat1    cat2    purchases    sales
A       B       20           25
C       A       30           45
B       B       35           20
A       A       40           50

我想获得每个数字列的shapiro统计值和p值,而不必编写每个类别的所有可能组合。

答案

这应该工作:

df.groupby(['cat1', 'cat2'])['purchases','sales'].apply(stats.shapiro)

以上是关于Pandas groupby并将函数应用于数字列的主要内容,如果未能解决你的问题,请参考以下文章

如何在 pandas groupby 对象上应用函数并将结果保存回父数据框的新列?

每个系列的 Pandas groupby 自定义功能

如何正确使用带有应用功能的熊猫 groupby 来解决副作用? (第一组申请两次)

如何使用 Groupby 将 Pandas TA 应用于数据框

Pandas 将 kruskal-wallis 应用于数字列

熊猫有效地将groupby函数应用于每一列[重复]