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

标签 python python-3.x pandas pandas-groupby pandas-apply

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

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

这会导致错误,指出无法将字符串转换为浮点型。其中唯一的非数字列是我用来分割数据框的两个类别。

如何修复它?

编辑:

示例数据:

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)

关于python - Pandas groupby 并将函数应用于数字列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52279449/

相关文章:

python - 在 Python 3 中从字符串创建 Python 对象

python - Python 2 和 3 之间 ctypes 的差异

Python 3,如何将字符串转换为 "iso-8859-1"以在html中使用

pandas - 将数据写入 Excel 给我 'ZIP does not support timestamps before 1980'

python - pytest-django依赖注入(inject)

python - 尝试使用来自 networkx 的 percolation_centrality

python - key 错误 : item not in index while trying to build boxplot with pandas

python - 在 pandas 中,如何计算每个列与系列的协方差?

python - SVM:训练后从头开始生成模型

python - 为什么Python在从字符串或列表打印时生成半个空格?