gpt4 book ai didi

python - 如果满足条件,重命名 pandas 数据框中的列

转载 作者:行者123 更新时间:2023-12-01 01:02:02 24 4
gpt4 key购买 nike

我试图弄清楚如果满足某些条件是否可以重命名列标题。我有一个 pandas 数据框:

import pandas as pd

data = [[1,'Joe', '2018', 5,7,9]]

df = pd.DataFrame(data, columns = ['ID', 'Name', 'Year', 'FallScore', 'WinterScore', 'SpringScore'])

print(df)
ID Name Year FallScore WinterScore SpringScore
0 1 Joe 2018 5 7 9

我想要做的是,如果列中包含“秋季”、“冬季”或“ Spring ”,则将字符串“NEW”添加到列标题的末尾。这是所需的输出。

df_desired = pd.DataFrame(data, columns = ['ID', 'Name', 'Year', 'FallScoreNEW', 'WinterScoreNEW', 'SpringScoreNEW'])

print(df_desired)
ID Name Year FallScoreNEW WinterScoreNEW SpringScoreNEW
0 1 Joe 2018 5 7 9

我能够获取每个术语的 bool 值数组,但无法弄清楚如何在找到“秋季”、“冬季”或“ Spring ”时替换列标题。请注意,我不知道实际的列标题,我只知道它们将包含“秋季”、“冬季”或“ Spring ”

我获取 bool 值数组的方式如下:

df.columns.str.contains('Fall')
df.columns.str.contains('Winter')
df.columns.str.contains('Spring')

任何帮助将不胜感激!

最佳答案

您可以将rename与lambda一起使用:

df.rename(lambda x: x + 'NEW' if any(k in x for k in keys) else x, axis=1)

ID Name Year FallScoreNEW WinterScoreNEW SpringScoreNEW
0 1 Joe 2018 5 7 9
<小时/>

如果您不希望仅为重命名操作返回数据副本,这也可以用作列表理解。

df.columns = [x + 'NEW' if any(k in x for k in keys) else x for x in df]
df

ID Name Year FallScoreNEW WinterScoreNEW SpringScoreNEW
0 1 Joe 2018 5 7 9

关于python - 如果满足条件,重命名 pandas 数据框中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55715572/

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