首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Pandas标准差返回NaN

Pandas标准差返回NaN
EN

Stack Overflow用户
提问于 2015-08-21 09:21:28
回答 2查看 17.8K关注 0票数 14

我在Python2.7中有以下Pandas Dataframe。

代码:

代码语言:javascript
复制
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.rand(10,6),columns=list('ABCDEF'))
df.insert(0,'Category',['A','C','D','D','B','E','F','F','G','H'])
print df.groupby('Category').std()

这是df

代码语言:javascript
复制
Category         A         B         C         D         E         F
       A  0.500200  0.791039  0.498083  0.360320  0.965992  0.537068
       C  0.295330  0.638823  0.133570  0.272600  0.647285  0.737942
       D  0.912966  0.051288  0.055766  0.906490  0.078384  0.928538
       D  0.416582  0.441684  0.605967  0.516580  0.458814  0.823692
       B  0.714371  0.636975  0.153347  0.936872  0.000649  0.692558
       E  0.639271  0.486151  0.860172  0.870838  0.831571  0.404813
       F  0.375279  0.555228  0.020599  0.120947  0.896505  0.424233
       F  0.952112  0.299520  0.150623  0.341139  0.186734  0.807519
       G  0.384157  0.858391  0.278563  0.677627  0.998458  0.829019
       H  0.109465  0.085861  0.440557  0.925500  0.767791  0.626924

我希望执行GROUP_BY,然后计算平均偏差和标准偏差。标准差有时是在对一行进行分组后计算的-这意味着除以N-1有时会得到除以0,这将打印NaN

以下是上述代码的输出:

输出:

代码语言:javascript
复制
                A         B         C         D         E         F
Category                                                            
A              NaN       NaN       NaN       NaN       NaN       NaN
B              NaN       NaN       NaN       NaN       NaN       NaN
C              NaN       NaN       NaN       NaN       NaN       NaN
D         0.350996  0.276052  0.389051  0.275708  0.269004  0.074137
E              NaN       NaN       NaN       NaN       NaN       NaN
F         0.407882  0.180813  0.091941  0.155699  0.501884  0.271025
G              NaN       NaN       NaN       NaN       NaN       NaN
H              NaN       NaN       NaN       NaN       NaN       NaN

对于我在一行上执行GROUP_BY的情况,有没有一种方法可以跳过标准差,只返回值本身。例如,我希望得到这样的结果:

所需的输出

代码语言:javascript
复制
                 A         B         C         D         E         F
Category                                                            
A         0.500200  0.791039  0.498083  0.360320  0.965992  0.537068
B         0.714371  0.636975  0.153347  0.936872  0.000649  0.692558
C         0.295330  0.638823  0.133570  0.272600  0.647285  0.737942
D         0.350996  0.276052  0.389051  0.275708  0.269004  0.074137
E         0.639271  0.486151  0.860172  0.870838  0.831571  0.404813
F         0.407882  0.180813  0.091941  0.155699  0.501884  0.271025
G         0.384157  0.858391  0.278563  0.677627  0.998458  0.829019
H         0.109465  0.085861  0.440557  0.925500  0.767791  0.626924

有没有可能用熊猫做到这一点?

编辑:要创建与上面完全相同的Pandas Dataframe,请选择它,复制到剪贴板,然后使用以下命令:

代码语言:javascript
复制
import pandas as pd
df = pd.read_clipboard(index_col='Category')
print df
print df.groupby('Category').std()
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32130954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档