擅长:python、mysql、java
<p>我要说的是,我不得不同意andyhayden的观点,他说只有最后两行应该是NaN,因为您使用的是center=True(那么它将从前2行平均到下2行)。在</p>
<p>Python会在第一行自动执行您需要的操作(取可用数据的平均值),但不会在最后一行执行。逻辑是获取2个先前值和2个下一个值(如果可用)。在</p>
<p>所以,按照最上面几行的逻辑:</p>
<pre><code>for i in xrange(2):
index = i + 19
df['freq_average'] = sum(df['freq'].iloc[index-2:21] / (20-index+3)
</code></pre>
<p>这将取前面两个值(索引-2)的平均值,直到结束(21)。这是针对你的具体问题。对于不同的窗口,您需要进行调整。在</p>