擅长:python、mysql、java
<p>使用.select\u dtypes排除不需要的列,并查找剩余满足条件的列</p>
<pre><code>df2=df.select_dtypes(exclude='object').notna()#Excludes the dates
</code></pre>
<p>将列转换为numpy数组</p>
<pre><code>t=df2.columns.to_numpy()
</code></pre>
<p>生成一个系列,其中布尔列被选择为NOTNULL并连接到df</p>
<pre><code>df.join(pd.DataFrame({'listofcols':[t[i] for i in df2.to_numpy()]}))
start end rf1 rf2 rf3 listofcols
0 01-01-2008 10-01-2008 NaN 12 NaN [rf2]
1 02-01-2008 11-01-2008 NaN 16 NaN [rf2]
2 03-01-2008 12-01-2008 32.0 18 18.0 [rf1, rf2, rf3]
</code></pre>
<p>如果对常规列表或dataframe中不为空的所有列感兴趣</p>
<pre><code>df.notna().any(0).index.tolist()#find any nan on taxis=0 and add to list
['start', 'end', 'rf1', 'rf2', 'rf3']
</code></pre>