【问题标题】:Pandas standard deviation on one column for subset of rows行子集的一列的 Pandas 标准差
【发布时间】:2018-01-24 01:55:39
【问题描述】:

我是使用 Python 和 Pandas 的新手。目前,我正在尝试创建一个从 SQL 数据库中提取数据并在 pandas 数据框中使用该数据的报告。每行是服务器名称和样本日期,然后是每列的样本数据。

我已经能够使用主机名过滤 df[df['hostname'] == uniquehost] df 是数据帧的变量,uniquehost 是每个唯一主机名的变量。

我接下来要做的是获取其他列的标准开发,尽管我无法弄清楚这部分。我试图使用 df[df['hostname'] == uniquehost].std()

但是,这是不正确的。

谁能指出我正确的方向来弄清楚这个数字?我怀疑我找错了树,可能有一种非常简单的方法来处理这个我还没有遇到过。

Hostname | Sample Date | CPU Peak | Memory Peak 
server1 | 08/08/17 | 67.32 | 34.83 
server1 | 08/09/17 | 34 | 62

【问题讨论】:

  • 您首先需要向我们展示一些数据和所需的输出。为什么不正确?
  • 抱歉,我的工作笔记本电脑不在。我试着举个数据结构的例子列如下Hostname | Sample Date | CPU Peak | Memory Peak server1 | 08/08/17 | 67.32 | 34.83 server1 | 08/09/17 | 34 | 62这是各种服务器的数据类型
  • 那你想做什么标准?
  • 另外,你想找到每个唯一主机的标准吗?
  • 我想分别获得 CPU 峰值和内存峰值的标准偏差。我正在尝试获取每个服务器的 cpu 和内存读数的 stdev。

标签: python pandas statistics standard-deviation


【解决方案1】:

IIUC,您需要先对Hostname 执行df.groupby,然后然后找到标准差。像这样的:

In [118]: df.groupby('Hostname')[['CPU Peak', 'Memory Peak']].std()
Out[118]: 
           CPU Peak  Memory Peak
Hostname                        
server1   23.560798    19.212091

【讨论】:

  • 非常感谢。我会试一试,然后回复你。
猜你喜欢
  • 2021-08-01
  • 2013-11-02
  • 1970-01-01
  • 1970-01-01
  • 2021-09-15
  • 2021-10-01
  • 1970-01-01
  • 2014-09-28
  • 1970-01-01
相关资源
最近更新 更多