替换pandas df列名中的字符串

abi*_*ett 6 python regex

我在pandas中有一个数据框,列名为"string_string",我试图通过删除"_"和后面的字符串来重命名它们.例如,我想将"12527_AC9E5"更改为"12527".我试图使用各种替代方案,我可以替换字符串的特定部分(例如,我可以代替所有的"_"),但是当我介绍通配符我没有达到预期的效果.

以下是我认为可行的一些事情,但事实并非如此.如果我删除他们工作的外卡(即,他们替换_).

df = df.rename(columns=lambda x: x.sub('_.+', ''))

df.columns = df.columns.str.replace('_.+','')
Run Code Online (Sandbox Code Playgroud)

任何帮助赞赏

Dee*_*ace 16

只需拆分'_'并取第一个元素.你可以利用字典理解:

df = df.rename(columns={col: col.split('_')[0] for col in df.columns})
Run Code Online (Sandbox Code Playgroud)