我有一个熊猫数据框架,该框架由某些随着时间的时间进行的传感器读数组成:
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
我已经写了代码,以添加每一列的均值:
# 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
这给了我我想要的结果,这是这样的数据框架:
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
将保存为熊猫系列的手段使用,但这并不能产生预期的输出。我想知道是否有更有效的方法是将索引“均值”和每个列的平均值添加到pandas dataframe的底部。
用放大器来设置::
df.loc['mean'] = df.mean()
结果输出: 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
对于单个统计数据,
concat
。
df1 = pd.concat([df, df.apply(['mean'])])
如果需要附加多个统计信息,则特别有用:
df1 = pd.concat([df, df.apply(['mean', 'sum', 'median'])])
要附加一大堆统计信息,例如std
median
,mean
等(OP已经计算),
concat
再次有用:
df1 = pd.concat([df, df.describe()])