擅长:python、mysql、java
<p>可能没有那么优雅,但请尝试:</p>
<pre><code>def fun(dataframe,n):
l = dataframe.stack().tolist()
return (pd.DataFrame([l[e:e+n] for e,i in enumerate(l)],
columns=dataframe.columns).dropna().astype(dataframe.dtypes))
</code></pre>
<hr/>
<pre><code>fun(df,df.shape[1])
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>