Python Can';t按标签删除数据框中的列

Python Can';t按标签删除数据框中的列,python,pandas,dataframe,Python,Pandas,Dataframe,导入csv文件后 import pandas as pd sp = pd.read_csv('ES_M1_askbid_1yr.csv') sp.columns.str.strip() sp.drop('K', axis=1, inplace=True) sp['Date'] = pd.to_datetime(sp['Date']) sp.set_index('Date', inplace=True) 现在我需要去掉一些列。我先尝试了一列,“K” 我得到错误:“['K']未在axis中找到”

导入csv文件后

import pandas as pd
sp = pd.read_csv('ES_M1_askbid_1yr.csv')
sp.columns.str.strip()
sp.drop('K', axis=1, inplace=True)
sp['Date'] = pd.to_datetime(sp['Date'])
sp.set_index('Date', inplace=True)
现在我需要去掉一些列。我先尝试了一列,“K”
我得到错误:
“['K']未在axis中找到”

我还尝试了以下变化:

sp.drop(['K'], axis=1, inplace=True)
sp.drop(columns=['K'], axis=1, inplace=True)
如果我按职位对该列进行称呼:

sp.drop(sp.columns[15], axis=1, inplace=True)
然后它工作了,但我想调用标签,因为如果我以后更改列的顺序,它会变得混乱


按名称删除它会有什么问题?

我想既然
sp.columns.str.strip()
没有修改您的列名,您会发现
sp.columns[15]
!=<代码>'K'。。。前者之所以有效,是因为它使用的是实际名称(包括前导和尾随空格字符等)。。。可能您的意思是
sp.columns=sp.columns.str.strip()
?如果
assert sp.columns[15]==“K”
,会发生什么?我很难相信熊猫坏了。因为你的代码看起来很好,你可以通过调用:list(sp.columns)@Nicolas来输出列名吗?我在上面的评论中说过。。。很可能这是一种期望
sp.columns.str.strip()
在原地运行的情况…
sp.columns=sp.columns.str.strip()
是解决方案!非常感谢。