python - 替换所有列 pandas df 中的多个字符

标签 python regex pandas dataframe replace

我的 df 有 200 多列。一些列名包含特殊字符,例如:() [] 我需要将所有 3 个替换为 _。我还需要替换空格...这是我的代码:

import pandas as pd

df = pd.read_csv('./pred_results.csv') 

df.columns = df.columns.str.replace(r"[()]", "_")

使用上面的代码,我只能替换 ()

最佳答案

你可以使用

df.columns = df.columns.str.replace(r"[][() ]", "_", regex=True) 
df.columns = df.columns.str.replace(r"[][() ]+", "_", regex=True)

第一行将每个单独的 ][() 和空格替换为 _.

第二行将替换后面的一大块 ][() 和空格字符使用单个 _

关于python - 替换所有列 pandas df 中的多个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66973229/

相关文章:

python - 将 TextInput 绑定(bind)到 .kv 文件中的标签

python - 从 1 维位数组中获取特定的 2 维序列数组 [Python]

regex - 正则表达式匹配以字母结尾但不以 R 中的短语结尾的字符串

正则表达式:检查 `abc`,然后检查 `def`,中间没有 `123`

python - 从 dict 以列表作为值创建 DataFrame

python - Python 中的交叉列表理解

python - Argparse:根据正则表达式区分参数?

java - 正则表达式和文本到文本的搜索; Solr

python - 如何使用 tweepy 将 python panda 数据帧保存在 csv 文件中

python - 在 Python 3.x 中使用 Pandas 合并基于列和特定列的值的两个 DataFrame