熊猫:删除多个列,只保留数字数据

时间:2015-11-03 16:06:16

标签: python pandas

我需要清理数据框并删除所有没有数字数据的列。我将列分类为“对象”,有些标记为int / float,但主要包含NaN。我想只保留填充数字的列。有办法吗?

1 个答案:

答案 0 :(得分:3)

使用select_dtypes并传递np.number仅过滤数字类型:

In [69]:
df = pd.DataFrame({'int':np.arange(5), 'float':np.random.randn(5), 'str':list('abcde')})
df

Out[69]:
      float  int str
0  0.987218    0   a
1  0.336119    1   b
2  1.800194    2   c
3  4.566850    3   d
4 -0.306808    4   e

In [71]:    
df.select_dtypes([np.number])

Out[71]:
      float  int
0  0.987218    0
1  0.336119    1
2  1.800194    2
3  4.566850    3
4 -0.306808    4

这接受numpy type hierarchy

中的任何类型

要删除包含任何NaN的列,您可以致电dropna(axis=1)感谢@Leb