4 回答

TA贡献1784条经验 获得超2个赞
嗯首先你正在使用的线
dffm = dffm.drop(['High'], axis=1, inplace=True)
如果成功,将不返回任何内容,因为就地标志意味着它将对当前数据帧执行操作。
请参阅: https ://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.drop.html
尝试 :
dffm.drop(columns=['High'], axis=1, inplace=True)
如果这不起作用,您需要查看您的数据框并查看列类型,也许它不是字符串,这是一个很长的镜头,但有时 csvs 字符串会更改为字节字符串类型。(您会看到一个 b"stringvalue")请参阅: 字符串和字节字符串有什么区别?

TA贡献1725条经验 获得超7个赞
您可能会收到此错误,因为您正在使用 inplace=True 并同时尝试将返回的 DataFrame 保存在 dffm 中。但是,这样做是不正确的,因为当您打开 inplace 标志时,更改就地完成并且它返回 None。您可以在 pandas.DataFrame 的 drop 操作文档中阅读它https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.drop.html
您可以使用从操作返回的数据框覆盖数据框的一般方法来做到这一点。
dffm = dffm.drop('High', axis=1)
或者你可以正确地使用 inplace 标志并这样做,
dffm.drop('High', axis=1, inplace=True)

TA贡献1831条经验 获得超10个赞
请尝试以下操作
# you can use columns parameter
data = dffm.drop(columns="High")
# when using inplace=True, you don't need to re-assign the dataframe ,
# as it directly modifies the datafame
dffm.drop("High", axis=1, inplace=True).
添加回答
举报