如何根据dtype删除DataFrame列

时间:2018-02-15 22:52:21

标签: python pandas

我有一个大熊猫数据框,我试图删除所有对象字段,以便我只剩下数字。

我一直试图写一个for循环来完成这项任务,因为我可能需要一遍又一遍地使用不同的数据。

出于某种原因,我无法让它发挥作用。以下是我到目前为止所做的事情

for cols in data:
    if data.values.type == object:
        numdata = data.drop(axis=1, inplace=True)

我得到的错误是:

  

AttributeError Traceback(最近一次调用   最后)in()         1表示数据中的cols:   ----> 2如果data.values.type == object:         3 numdata = data.drop(axis = 1,inplace = True)

     

AttributeError:' numpy.ndarray'对象没有属性'键入'

我是一个新手,出于某种原因,我无法获得for循环和if语句逻辑。“

1 个答案:

答案 0 :(得分:9)

您可以使用select_dtypes作为过滤方式来删除列。

import pandas as pd

df = pd.DataFrame({'x': ['a', 'b', 'c'], 'y': [1, 2, 3], 'z': ['d', 'e', 'f']})

df.drop(df.select_dtypes(['object']), inplace=True, axis=1)
print(df)