无法通过汇总使用熊猫的某些基本统计功能

时间:2019-02-21 03:35:29

标签: python pandas pandas-groupby

我有一个实验,其中测量“深度”以改变“力”和“扫描速度”。每组变量进行五次运行。

我必须计算五次运行中测得的最大深度以及测量的标准偏差。为此,我构建了一个Pandas数据框,如下所示:

   force  scanspeed  depth
0    0.5         10     3.541  
1    0.5         20     2.531
2    0.5         10     3.020
3      1         10     2.130
4    0.5         20     1.502
5    0.5         10     4.102
6      2         50     2.413
...
(100+ rows)

对于此数据框,我想使用forcescanspeed列进行分组,并为每个组生成最大偏差和标准偏差(有多行具有相同的作用力和扫描速度)。但是,在运行以下行:

print(subframe.groupby(['force', 'scanspeed'])['depth'].agg([max, std]))

无法识别功能std,并提示NameError: name 'std' is not defined

发现其他无效的功能包括:meanmediancorrvarcountnp.std。我尚未测试可用的全部功能,但到目前为止,尽管所有这些功能都来自同一个Pandas库(当然还有np.std),但似乎只有maxmin有效。

对于此问题的任何帮助,我们将不胜感激。

1 个答案:

答案 0 :(得分:1)

如果您确定在该语句范围内还可以访问np.std,则agg还允许您将某些函数的名称作为字符串传递:

print(subframe.groupby(['force', 'scanspeed'])['depth'].agg([max, 'std']))

这条线似乎对我有用,除了熊猫以外,什么都不导入。


否则,也许在该语句之前尝试调用np.std([0,1])之类的调用,以确保它也不会引发错误。或者,您可以尝试在之前的行中插入import numpy as np