如何将分位数应用于pandas groupby对象?

2024-06-25 05:40:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个名为grouped的pandas groupby对象。我可以使用grouped.mean()和其他简单的函数,但无法使用grouped.quantile()。尝试运行grouped.quantile()时出现以下错误:

ValueError: ('invalid literal for float(): groupA', u'occurred at index groups')

我是按文本标签分组的,所以我不确定函数为什么要将其转换为浮点。它应该使用每组中的浮点数计算分位数。有人能帮我指出我做错了什么吗?


Tags: 对象函数pandasfor错误floatmeangroupby
1条回答
网友
1楼 · 发布于 2024-06-25 05:40:17

看起来quantile()并没有忽略讨厌的列,而是试图为文本列找到分位数。下面是一个简单的例子:

In [75]: df = DataFrame({'col1':['A','A','B','B'], 'col2':[1,2,3,4]})

In [76]: df
Out[76]:
  col1  col2
0    A     1
1    A     2
2    B     3
3    B     4

In [77]: df.groupby('col1').quantile()
ValueError: ('could not convert string to float: A', u'occurred at index col1')

但是,当我只对数值列进行子集时,会得到:

In [78]: df.groupby('col1')['col2'].quantile()
Out[78]:
col1
A       1.5
B       3.5

相关问题 更多 >