【发布时间】:2018-01-01 00:15:31
【问题描述】:
这是一个列表。
1 2 3 4 5 6 7 8 9 10.
我想计算每三个连续元素的平均值。例如,输出将是:
NA NA 2 3 4 5 6 7 8 9
如何做到这一点?
问候
【问题讨论】:
-
您是否尝试过自己解决?还是谷歌一下?
标签: python python-2.7 python-3.x pandas
这是一个列表。
1 2 3 4 5 6 7 8 9 10.
我想计算每三个连续元素的平均值。例如,输出将是:
NA NA 2 3 4 5 6 7 8 9
如何做到这一点?
问候
【问题讨论】:
标签: python python-2.7 python-3.x pandas
如果您更喜欢非 Pandas 解决方案,您仍然可以完成工作:
import statistics
[statistics.mean(x) for x in zip(data, data[1:], data[2:])]
# [2, 3, 4, 5, 6, 7, 8, 9]
【讨论】:
使用滚动窗口:
In [117]: s = pd.Series('1 2 3 4 5 6 7 8 9 10'.split())
In [118]: s
Out[118]:
0 1
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
dtype: object
In [119]: s.rolling(3).mean()
Out[119]:
0 NaN
1 NaN
2 2.0
3 3.0
4 4.0
5 5.0
6 6.0
7 7.0
8 8.0
9 9.0
dtype: float64
【讨论】: