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
,你有什么办法解决这个问题吗?