python - Pandas : dropping multiple columns and keeping only ones with numeric data

标签 python pandas

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

最佳答案

使用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

关于python - Pandas : dropping multiple columns and keeping only ones with numeric data,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33503754/

相关文章:

python - 仅相似列上的两个数据框的 Pandas 平均值

python - 如何在 Seaborn 中覆盖 ax 具有不同列的屏蔽图? - Python

python - 使用包含多种类型的 numpy 数组创建 Pandas DataFrame

python - 如何使用 Pandas 保存行内的列表

python - 一次使用 Pandas 返回多只股票

python - Pandas :drop_duplicates 有条件

python - 可以创建一个知道方法对象的@synchronized 装饰器吗?

python - get_by_id(ndb,GAE)中的查询语句

python - 如何在 Numpy 中实现垃圾回收

python - 如何使用 PyMySQL 获取 MySQL 类型的错误?