一次替换Pandas datafram中的所有字符

2024-04-19 04:01:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我有多个不同名称格式的列。 例如:

df.columns = ['name_column 1 (type1), name-column_2-(type1),...]

我需要用下划线替换所有字符(下划线除外)。但是如果有'-(',我只需要一个下划线''uu',而不是每个特殊字符都有两个下划线''。在

期望输出:

^{pr2}$

我试过了

for element in df.columns:
    re.sub('[^A-Za-z0-9]+', '_', element)
    print element

但什么也没发生,就像其他几次尝试一样。在

提前谢谢


Tags: columnsnameinre名称dffor格式
3条回答

尝试:

df.columns = [re.sub('[^A-z0-9]', '_', i).replace(" ", "_").replace("__", "_") for i in df.columns]

使用^{}+^{}

df.columns = df.columns.str.replace('[^A-Za-z0-9]+', '_').str.strip('_')

样品:

^{pr2}$

由于re.sub的结果没有分配给任何对象,因此会丢失,因此不会发生任何事情。您可以使用列表理解并将结果分配回df.columns

df.columns = [re.sub('[^A-Za-z0-9]+', '_', element) for element in df.columns]
print df.columns

regex模式仍然是错误的,但这应该让您开始。在

相关问题 更多 >