选择包含数值的列,包括null

时间:2017-02-21 01:55:21

标签: python pandas

我想选择包含数字值的列,包括null

使用此代码

numeric_cols=set(dfAcepCtrUsers.select_dtypes(include=[np.number]).columns.values)

它将排除具有空值的列,例如

col
===
1
2
None

选择数字列的正确方法是什么,包括这些列?

1 个答案:

答案 0 :(得分:0)

您可以先尝试将DataFrame中的所有列转换为数字类型

df.apply(lambda x: pd.to_numeric(x, errors='ignore'))

而非数字列将保持不变。

然后,包含None的列将不再是dtype object,并且应使用select_dtypes捕获。

<强>演示

>>> df
  nulls strings
0     3     foo
1     2     bar
2  None     baz

>>> set(df.select_dtypes(include=[np.number]))
set()

>>> df = df.apply(lambda x: pd.to_numeric(x, errors='ignore'))

>>> df 
   nulls strings
0    3.0     foo
1    2.0     bar
2    NaN     baz

>>> set(df.select_dtypes(include=[np.number]))
{'nulls'}