Python Pandas groupby和qcut不';t在0.14.1中工作

Python Pandas groupby和qcut不';t在0.14.1中工作,python,pandas,Python,Pandas,我希望按组对观察结果进行装箱,并将装箱分配放回数据框: In [60]: df = pd.DataFrame({'x': np.random.rand(20), 'grp': ['a'] * 10 + ['b'] * 10}) In [61]: df['y'] = df.groupby('grp')['x'].transform(pd.qcut, 3) Traceback (most recent call last): File "<ipython-input-61-fe2f09

我希望按组对观察结果进行装箱,并将装箱分配放回数据框:

In [60]: df = pd.DataFrame({'x': np.random.rand(20), 'grp': ['a'] * 10 + ['b'] * 10})

In [61]: df['y'] = df.groupby('grp')['x'].transform(pd.qcut, 3)
Traceback (most recent call last):

  File "<ipython-input-61-fe2f09d0bbe2>", line 1, in <module>
    df.groupby('grp')['x'].transform(pd.qcut, 3)

  File "C:\Python\python-2.7.6.amd64\lib\site-packages\pandas\core\groupby.py", line 2286, in transform
    result[indexer] = res

ValueError: could not convert string to float: (0.352, 0.784]
[60]中的
df=pd.DataFrame({'x':np.random.rand(20),'grp':['a']*10+['b']*10})
在[61]中:df['y']=df.groupby('grp')['x'].transform(pd.qcut,3)
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
df.groupby('grp')['x'].transform(pd.qcut,3)
文件“C:\Python\Python-2.7.6.amd64\lib\site packages\pandas\core\groupby.py”,第2286行,在转换中
结果[索引器]=res
ValueError:无法将字符串转换为浮点:(0.352,0.784)

我相信上面的代码过去在0.13中是有效的,但现在似乎在0.14.1中不起作用了。有什么想法吗?

这里有一个解决方法,将由
qcut
创建的分类包装成一个系列

df['y'] = df.groupby('grp')['x'].apply(lambda x: pd.Series(pd.qcut(x,3), index=x.index))

这里有一个解决方法,将由
qcut
创建的分类包装成一个系列

df['y'] = df.groupby('grp')['x'].apply(lambda x: pd.Series(pd.qcut(x,3), index=x.index))

这里有一个解决方法,将由
qcut
创建的分类包装成一个系列

df['y'] = df.groupby('grp')['x'].apply(lambda x: pd.Series(pd.qcut(x,3), index=x.index))

这里有一个解决方法,将由
qcut
创建的分类包装成一个系列

df['y'] = df.groupby('grp')['x'].apply(lambda x: pd.Series(pd.qcut(x,3), index=x.index))

这真的没有任何意义。
qcut
返回一个由字符串对索引的序列(因为这是当前的impl)。您希望它做什么?我认为它应该创建一个列
y
,将bin分配存储为字符串?生成的数据是一个由两个元素组成的列表系列,非常奇怪。使用@chrisb soln below这真的没有任何意义。
qcut
返回一个由字符串对索引的系列(这是当前的impl)。您希望它做什么?我认为它应该创建一个列
y
,将bin分配存储为字符串?生成的数据是一个由两个元素组成的列表系列,非常奇怪。使用@chrisb soln below这真的没有任何意义。
qcut
返回一个由字符串对索引的系列(这是当前的impl)。您希望它做什么?我认为它应该创建一个列
y
,将bin分配存储为字符串?生成的数据是一个由两个元素组成的列表系列,非常奇怪。使用@chrisb soln below这真的没有任何意义。
qcut
返回一个由字符串对索引的系列(这是当前的impl)。你期望它做什么?我认为它应该创建一个列
y
,将bin分配存储为字符串?生成的数据是一个两元素的列表系列,非常奇怪。使用@chrisb soln belowyep,这很有意义(我不会称之为解决方法,但更好的解决方法!)是的,这很有意义(我不会称之为解决方案,但更好的解决方案!)是的,这对这件事很有意义(我不会称之为解决方案,但更好的解决方案!)是的,这对这件事很有意义(我不会称之为解决方案,但更好的解决方案!)