我有一个csv文件,其列标题为:名称,mfr,类型,卡路里,蛋白质,脂肪,钠,纤维,碳水化合物,糖,维生素,等级。当我尝试删除钠柱时,我不明白为什么我得到一个NoneType对象没有属性“ drop”错误
我尝试过
df.drop(['sodium'],axis=1)
df = df.drop(['sodium'],axis=1)
df = df.drop (['sodium'], 1, inplace=True)
答案 0 :(得分:3)
这是您的问题:
df = df.drop (['sodium'], 1, inplace=True)
由于None
标志,它返回inplace
(documentation),因此您不再有对数据框的引用。 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 文件存在一些问题。