【问题标题】:Rename columns with regex in Python在 Python 中使用正则表达式重命名列
【发布时间】:2020-11-29 20:52:29
【问题描述】:

我正在尝试在 Python 中重命名我的 df 中的一堆列。因为有超过 1000 个应该重命名,所以我尝试用正则表达式来做,因为我看到 Python 允许你这样做。更具体地说,应重命名以 _Sum 结尾的每一列,将 _Sum 部分替换为“_max”(例如:column1_Sum -> column1_max)。我试过以下代码:

df = df.rename(columns=lambda x: re.sub('(.+)_Sum$','$1_max',x))

但它只是将每个列名逐字替换为“$1_max”。我以前在其他程序中使用过正则表达式,我一直认为 $1 捕获了你以前的组,在这种情况下,是 '_' 之前的所有内容,所以我真的不知道我在这里做错了什么。

【问题讨论】:

  • 改用r"\1_max"

标签: python regex pandas rename


【解决方案1】:

您不需要针对特定​​问题的捕获组。你可以这样做:

df.columns = df.columns.str.replace('_Sum$', '_max')

如果您最终确实需要捕获组,您可以使用类似的方法:

df.columns.str.replace('(.+)_Sum$', lambda x: f'{x.group(1)}_max')

见:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.str.replace.html

【讨论】:

    猜你喜欢
    • 2020-12-07
    • 2011-04-28
    • 2021-11-04
    • 2018-05-13
    • 1970-01-01
    • 2018-02-27
    • 2021-08-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多