Pandas 行子集的一列标准偏差
Pandas standard deviation on one column for subset of rows
我刚开始使用 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
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
我刚开始使用 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
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