regex 如何通过正则表达式删除列名中的所有特殊字符,但在Pandas Python中保留“:“?[已关闭]

tjvv9vkg  于 2023-02-25  发布在  Python
关注(0)|答案(1)|浏览(69)

昨天关门了。
Improve this question
我有Pandas DataFrame在Python中如下:

COL1   | XX:\x84Â\x82Ă\x82Â\  | \x84Â\x82Ă\PPx82Â\
-------|----------------------|--------------------
111    | ABC                  | X
222    | CCC                  | Y
333    | DDD                  | XX

My code and current output:

通过使用下面的代码,我可以删除列名中的任何特殊字符,并返回转换后的列名列表。但我也将":"替换为"_"

import re

new_names = {col: re.sub(r'[^A-Za-z0-9_]+', '', col) for col in df.columns}
new_n_list = list(new_names.values())

[COL1, XX_A, PP]
    • 我的问题:**

我如何修改我的代码,以便像现在一样工作,但不将":"转换为"_"

    • 所需产出:**
[COL1, XX:A, PP]
vxqlmq5t

vxqlmq5t1#

你能试试这个正则表达式吗?

new_names = {col: re.sub(r'[^A-Za-z0-9_]|(?<!:):(?!:)', '', col) for col in df.columns}

相关问题