擅长:python、mysql、java
<p>IIUC您可以使用<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.stack.html" rel="nofollow noreferrer">^{<cd1>}</a>在<code>rfX</code>列上进行筛选后<code>groupby</code>索引并从结果组构建列表:</p>
<pre><code>df.filter(regex=r'rf\d').stack().groupby(level=0).agg(list)
0 [12.0]
1 [16.0]
2 [32.0, 18.0, 18.0]
dtype: object
</code></pre>
<p>或使用列表理解:</p>
<pre><code>[[i for i in row if i==i] for row in df.filter(regex=r'rf\d').values.tolist()]
[[12.0], [16.0], [32.0, 18.0, 18.0]]
</code></pre>
<p>或者如果您需要列名</p>
<pre><code>df['vals'] = df.filter(regex=r'rf\d').stack().reset_index(level=1)\
.groupby(level=0).level_1.agg(list)
print(df)
start end rf1 rf2 rf3 vals
0 2008-01-01 2008-10-01 NaN 12 NaN [rf2]
1 2008-02-01 2008-11-01 NaN 16 NaN [rf2]
2 2008-03-01 2008-12-01 32.0 18 18.0 [rf1, rf2, rf3]
</code></pre>