我有一个大熊猫数据框,我试图删除所有对象字段,以便我只剩下数字。
我一直试图写一个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语句逻辑。“
答案 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)