不可能在熊猫数据框中删除列

我想删除数据框中的列。

这就是我导入 csv 的方式:


dffm = pd.read_csv('..xxxxxx.csv', sep=';', engine='python')

为什么不能删除“高”列?:


            Time        Open    High    Low     Close

Date                    

12.06.20    07:00:00    3046.50 3046.75 3046.00 3046.50

12.06.20    07:00:06    3046.75 3046.75 3046.00 3046.00

12.06.20    07:00:12    3046.00 3046.00 3045.75 3045.75

12.06.20    07:00:18    3046.00 3046.25 3046.00 3046.0

用这一行:


dffm = dffm.drop(['High'], axis=1, inplace=True)

错误:


"['High'] not found in axis"


UYOU
浏览 190回答 4
4回答

一只斗牛犬

嗯首先你正在使用的线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")请参阅: 字符串和字节字符串有什么区别?

qq_遁去的一_1

您可能会收到此错误,因为您正在使用 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)

慕哥6287543

请尝试以下操作# 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).

神不在的星期二

错误的可能原因是该列确实不存在,因此请检查:('High' in dffm.columns)例如,如果结果False为列名中使列名不同的空格。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python