使用正则表达式为Pandas重命名数据框中的列

时间:2014-10-22 04:04:22

标签: python regex pandas

我有一个由Pandas制作的数据框,我想删除每个列名末尾的空白区域。我试过像:

raw_data.columns.values = re.sub(' $','',raw_data.columns.values)

但这不起作用,我在这里做错了什么?

3 个答案:

答案 0 :(得分:14)

我应该使用re包:

raw_data = raw_data.rename(columns=lambda x: re.sub(' $','',x))

答案 1 :(得分:0)

我建议使用

df.columns = df.columns.str.stripe()

答案 2 :(得分:0)

@Christian的答案可能是针对此特定问题的,但对于有关替换列中名称的更一般的问题,我建议创建一个字典理解并将其传递给重命名函数:

df.rename(columns={element: re.sub(r'$ (.+)',r'\1', element, flags = re.MULTILINE) for element in df.columns.tolist()})

对于我来说,我想在每列的开头添加一些内容,所以:

df.rename(columns={element: re.sub(r'(.+)',r'x_\1', element) for element in df.columns.tolist()})

您可以使用inplace = True参数实际在数据框中进行更改。