我有一个Pandas DataFrame对象data
。有一些名为'a', 'b', 'c', ..., 'z'
我想选择符合以下条件的所有行:列'b'
,'c'
,'g'
中的数据不同时为NaN。我尝试过以下方法:
import numpy as np
COLUMN_NAMES = ['b', 'c', 'g']
new_data = data[not all(np.isnan(value) for value in data[COLUMN_NAMES])]
但它不起作用 - 抛出错误:
Traceback (most recent call last):
File "<input>", line 1, in <module>`
File "<input>", line 1, in <genexpr>
TypeError: Not implemented for this type
非常感谢任何建议。
答案 0 :(得分:1)
我想选择符合以下条件的所有行:列中的数据&#39; b&#39;,&#39; c&#39;,&#39; g&#39;同时不是NaN。
然后您可以使用new_data = data.dropna(how='all', subset=['b', 'c', 'g'])
:
how : {'any', 'all'}
* any : if any NA values are present, drop that label
* all : if all values are NA, drop that label
subset : array-like
Labels along other axis to consider, e.g. if you are dropping rows
these would be a list of columns to include
使用parameters:
{{1}}