为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

UYOU 2023-03-01 15:34:01
我想删除数据框中的列。这就是我导入 csv 的方式:dffm = pd.read_csv('..xxxxxx.csv', sep=';', engine='python')为什么不能删除“高”列?:            Time        Open    High    Low     CloseDate                    12.06.20    07:00:00    3046.50 3046.75 3046.00 3046.5012.06.20    07:00:06    3046.75 3046.75 3046.00 3046.0012.06.20    07:00:12    3046.00 3046.00 3045.75 3045.7512.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"
查看完整描述

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")请参阅: 字符串和字节字符串有什么区别?


查看完整回答
反对 回复 2023-03-01
?
qq_遁去的一_1

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)


查看完整回答
反对 回复 2023-03-01
?
慕哥6287543

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).


查看完整回答
反对 回复 2023-03-01
?
神不在的星期二

TA贡献1963条经验 获得超6个赞

错误的可能原因是该列确实不存在,因此请检查:

('High' in dffm.columns)

例如,如果结果False为列名中使列名不同的空格。


查看完整回答
反对 回复 2023-03-01
  • 4 回答
  • 0 关注
  • 152 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号