Pandas groupby聚合中无法使用某些基本统计函数

2024-09-26 18:01:33 发布

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

我做了一个实验,在不同的“力”和“扫描速度”下测量“深度”。每组变量进行五次运行。你知道吗

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

   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。我还没有测试所有可用的函数,但到目前为止,似乎只有maxmin可以工作,尽管所有这些函数都来自同一个pandas库(除了np.std标准当然)。你知道吗

在这个问题上,如果有任何帮助,我将不胜感激。你知道吗


Tags: 数据函数np速度maxrowsstdprint
1条回答
网友
1楼 · 发布于 2024-09-26 18:01:33

如果您确定np.std在该语句作用域中是可访问的,那么agg还允许您将某些函数的名称作为字符串传递:

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

这条生产线似乎对我很管用,除了熊猫,我什么也不进口。你知道吗


否则,可以在该语句之前尝试类似于np.std([0,1])的调用,以确保它不会抛出错误。或者你可以试着把import numpy as np放在前面。你知道吗

相关问题 更多 >

    热门问题