2013-01-02 76 views
4

我有一個叫做grouped的熊貓groupby對象。我可以得到grouped.mean()和其他簡單的功能,但我不能讓grouped.quantile()工作。我得到嘗試運行grouped.quantile()如果出現以下錯誤:如何將分位數應用於pandas groupby對象?

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

我對文本標籤分組,所以我不知道爲什麼函數試圖將其轉換爲浮動。它應該使用每個組內的浮點數來計算分位數。有人可以幫助指出我做錯了什麼嗎?

+0

這[問題](https://github.com/pydata/pandas/issues/2625)現在已經修復,所以你會在下一個版本的熊貓中看到它。 –

回答

3

它看起來像分位數()不會忽略令人討厭的列,並試圖爲文本列找到分位數。這裏有一個簡單的例子:

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 
+0

我發佈了這個[github上的問題](https://github.com/pydata/pandas/issues/2625)。 –

+0

謝謝。理想情況下,quantile()應該自動應用於像mean()這樣的所有列,但此解決方案現在適用於我。 – ezbentley

相關問題