擅长:python、mysql、java
<p>让我们试试<code>rolling</code>和<code>numpy</code>:</p>
<pre><code>def rolling(a, w=4):
s = a.strides[-1]
return np.lib.stride_tricks.as_strided(a, (len(a)-w+1, w), (s, s))
pd.DataFrame(rolling(df.values.reshape(-1)), columns=df.columns)
</code></pre>
<hr/>
<pre><code> A B C D
0 1 2 3 4
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
4 5 6 7 8
5 6 7 8 9
6 7 8 9 10
7 8 9 10 11
8 9 10 11 12
</code></pre>