无法删除列,对象没有属性错误

时间:2018-06-19 19:16:57

标签: python python-3.x pandas

我有一个csv文件,其列标题为:名称,mfr,类型,卡路里,蛋白质,脂肪,钠,纤维,碳水化合物,糖,维生素,等级。当我尝试删除钠柱时,我不明白为什么我得到一个NoneType对象没有属性“ drop”错误

我尝试过

df.drop(['sodium'],axis=1) 

df = df.drop(['sodium'],axis=1)

df = df.drop (['sodium'], 1, inplace=True)

3 个答案:

答案 0 :(得分:3)

这是您的问题:

df = df.drop (['sodium'], 1, inplace=True)

由于None标志,它返回inplacedocumentation),因此您不再有对数据框的引用。 df现在为None,而None没有drop属性。

我的期望是您已经在代码的某个先前位置完成了此操作(或类似的操作,也许还要删除另一列?)。

答案 1 :(得分:0)

还有一个类似的问题,你应该看看

Delete column from pandas DataFrame using del df.column_name

根据答案,

`df = df.drop (['sodium'], 1, inplace=True)`

应该是

df.drop (['sodium'], 1, inplace=True)

虽然是第一个代码,

df = df.drop(['sodium'],axis=1)

应该可以正常工作,如果有错误,请尝试

print(df.columns)

确保从csv文件中实际读取了列

答案 2 :(得分:0)

使用 pd.read_csv(r'File_Path_with_name') 会解决这个问题,因为读取 csv 文件存在一些问题。