Python 小写并替换Pandas中dataframe标头中不需要的子字符串

Python 小写并替换Pandas中dataframe标头中不需要的子字符串,python,pandas,strip,Python,Pandas,Strip,我想将小写并从数据帧的标题中删除第一个s:'id','sTitle','sSource','sDate','sAbstract','ssstart_Time','sSite','sUrl' 预期的标题如下:“id”、“title”、“source”、“date”、“abstract”、“start\u time”、“site”、“url” 我尝试过:df.columns=df.columns.str.lower().lstrip('s'),它生成一个错误:AttributeError:'Inde

我想将
小写
并从数据帧的标题中删除第一个
s
'id','sTitle','sSource','sDate','sAbstract','ssstart_Time','sSite','sUrl'

预期的标题如下:
“id”、“title”、“source”、“date”、“abstract”、“start\u time”、“site”、“url”

我尝试过:
df.columns=df.columns.str.lower().lstrip('s')
,它生成一个错误:
AttributeError:'Index'对象没有属性'lstrip'


我怎样才能正确地做到这一点?谢谢。

您需要再次编写
.str

df.columns = df.columns.str.lstrip('s').str.lower()

编辑:

与OP讨论后,这是最终工作代码:

cols = ['sAbstract', 'sStart_Time']
df.columns = pd.Series(df.columns.tolist()).replace({k: k.lstrip('s').lower() for k in cols})

cols=['sAbstract','sStart_Time'],df.cols=df.cols.str.lower().str.lstrip('s')
不起作用。
df[cols].columns.str.lower()…
是您正在寻找的@ahbon刚刚尝试过的
cols=['sAbstract','sStart_Time'],df[cols].columns=df[columns].columns.str.lower().str().str.str.lstrip('s')
,列名没有改变。有什么想法吗?@ahbon尝试使用:
cols=['sAbstract','ssstart_Time';df.columns=df.columns.replace({k:k.lower().lstrip('s')表示cols}中的k)
Ok,让我试试。谢谢另一个问题,
lstrip('s')
似乎取代了
sStart\u Time
左侧的两个
s
,它变成了
tart\u Time
,你有什么办法解决这个问题吗?