我想根據特定條件從DataFrame中選擇列。我知道它可以用循環完成,但我的df非常大,所以效率至關重要。列選擇的條件是隻有non-nan條目或只有nans的序列,後跟一個只有non-nan條目的序列。熊貓中的條件列選擇
下面是一個例子。請看下面的數據框:
pd.DataFrame([[1, np.nan, 2, np.nan], [2, np.nan, 5, np.nan], [4, 8, np.nan, 1], [3, 2, np.nan, 2], [3, 2, 5, np.nan]])
0 1 2 3
0 1 NaN 2.0 NaN
1 2 NaN 5.0 NaN
2 4 8.0 NaN 1.0
3 3 2.0 NaN 2.0
4 3 2.0 5.0 NaN
從的話,我想只選擇列0和1。關於如何做到這一點沒有有效循環有什麼建議?
由於@piRSquared。這個解決方案確實完成了工作,但運行時間比下面發佈的解決方案長3倍以上 – splinter
@splinter我並不感到驚訝。我想到尼基爾走的路線,但我選擇了簡潔。尼基提供了一個很好的答案。儘管使用相同的邏輯,我會更新我的文章,但利用一些技巧加快速度。 – piRSquared
聽起來不錯@piRSquared – splinter