我想根据特定条件从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