gpt4 book ai didi

python - 使用函数重命名多个 pandas Dataframe 列名

转载 作者:行者123 更新时间:2023-12-02 16:44:09 26 4
gpt4 key购买 nike

尝试使用正则表达式重命名 pandas dataframe 列,我知道如何按照下面的方式重命名列表,但无法使用 df.rename 获得成功结果。

输入:

df.columns.values = ['Time', '101 <RoomTemperature> (C)', '102 <ChemberTemperature> (C)', '103 <U1100> (C)', '103 <U1200 (C)', '103 U1500> (C)']

使用正则表达式按照以下代码尝试重命名数据框列,但它不起作用。我想不出如何在 df.rename 方法中将多个指令放在一起。

df.rename(columns={c: c.strip() for c in df.columns.values.tolist()
if "<" and ">" in c:
re.search(r"(?<=<).*(?=>)",c).group(0)}, inplace=True)

我希望它遵循正则表达式并将其重命名为如下所示:

df.columns.values = ["Time", "RoomTemperature", "ChemberTemperature", "U1100", "103 <U1200 (C)", "103 U1500> (C)"]

最佳答案

您可以将功能提取到函数中并执行以下操作:

import re
import pandas as pd

# sample data
df = pd.DataFrame(
columns=['Time', '101 <RoomTemperature> (C)', '102 <ChemberTemperature> (C)', '103 <U1100> (C)', '103 <U1200 (C)',
'103 U1500> (C)'])


# replacement function
def repl(name):
match = re.search(r"<(.*?)>", name)
return match.group(1) if match else name


df.rename(columns={c: repl(c.strip()) for c in df.columns}, inplace=True)

print(df.columns)

输出

Index(['Time', 'RoomTemperature', 'ChemberTemperature', 'U1100',
'103 <U1200 (C)', '103 U1500> (C)'],
dtype='object')

话虽如此,您还需要修复正则表达式。

关于python - 使用函数重命名多个 pandas Dataframe 列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60913767/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com