首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向pandas DataFrame添加具有列平均值的行

向pandas DataFrame添加具有列平均值的行
EN

Stack Overflow用户
提问于 2017-03-18 03:36:22
回答 1查看 23.9K关注 0票数 26

我有一个由一些传感器读数组成的熊猫DataFrame,如下所示:

代码语言:javascript
复制
       diode1  diode2  diode3  diode4
Time
0.530       7       0      10      16
1.218      17       7      14      19
1.895      13       8      16      17
2.570       8       2      16      17
3.240      14       8      17      19
3.910      13       6      17      18
4.594      13       5      16      19
5.265       9       0      12      16
5.948      12       3      16      17
6.632      10       2      15      17

我已经编写了代码,用每列的均值添加另一行:

代码语言:javascript
复制
# List of the averages for the test. 
averages = [df[key].describe()['mean'] for key in df]
indexes = df.index.tolist()
indexes.append('mean')
df.reindex(indexes)
# Adding the mean row to the bottom of the DataFrame

i = 0
for key in df:
    df.set_value('mean', key, averages[i])
    i += 1

这样就得到了我想要的结果,即如下所示的DataFrame:

代码语言:javascript
复制
       diode1  diode2  diode3  diode4
Time
0.53      7.0     0.0    10.0    16.0
1.218    17.0     7.0    14.0    19.0
1.895    13.0     8.0    16.0    17.0
2.57      8.0     2.0    16.0    17.0
3.24     14.0     8.0    17.0    19.0
3.91     13.0     6.0    17.0    18.0
4.594    13.0     5.0    16.0    19.0
5.265     9.0     0.0    12.0    16.0
5.948    12.0     3.0    16.0    17.0
6.632    10.0     2.0    15.0    17.0
mean     11.6     4.1    14.9    17.5

但是,我确信这不是添加行的最有效方式。我曾尝试使用append with the means saved as a pandas Series,但最终得到的结果如下:

代码语言:javascript
复制
    diode1  diode2  diode3  diode4                     mean
0      7.0     0.0    10.0    14.0                      NaN
1      9.0     0.0    10.0    15.0                      NaN
2     10.0     5.0    14.0    20.0                      NaN
3      6.0     0.0     7.0    14.0                      NaN
4      7.0     0.0    10.0    15.0                      NaN
5      7.0     0.0     8.0    14.0                      NaN
6      7.0     0.0    11.0    14.0                      NaN
7      7.0     0.0     2.0    11.0                      NaN
8      2.0     0.0     4.0    12.0                      NaN
9      4.0     0.0     0.0     6.0                      NaN
10     NaN     NaN     NaN     NaN  [11.6, 4.1, 14.9, 17.5]

我想知道是否有更有效的方法将索引为“mean”的行和每列的平均值添加到熊猫DataFrame的底部。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-18 03:41:57

setting with enlargement使用loc

代码语言:javascript
复制
df.loc['mean'] = df.mean()

结果输出:

代码语言:javascript
复制
       diode1  diode2  diode3  diode4
Time                                 
0.53      7.0     0.0    10.0    16.0
1.218    17.0     7.0    14.0    19.0
1.895    13.0     8.0    16.0    17.0
2.57      8.0     2.0    16.0    17.0
3.24     14.0     8.0    17.0    19.0
3.91     13.0     6.0    17.0    18.0
4.594    13.0     5.0    16.0    19.0
5.265     9.0     0.0    12.0    16.0
5.948    12.0     3.0    16.0    17.0
6.632    10.0     2.0    15.0    17.0
mean     11.6     4.1    14.9    17.5
票数 42
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42865805

复制
相关文章

相似问题

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