擅长:python、mysql、java
<p>另一种方法是使用“扩展窗口”功能:</p>
<pre><code>>>> def expanding_window(obj):
n = len(obj) + 1
return [obj[:i] for i in range(1, n)]
>>> pd.DataFrame([expanding_window(df[k].tolist()) for k in df.columns], index=df.columns).T
A B C
0 [a] [1] [2]
1 [a, a] [1, 2] [2, 3]
2 [a, a, b] [1, 2, 1] [2, 3, 1]
3 [a, a, b, b] [1, 2, 1, 2] [2, 3, 1, 6]
</code></pre>