gpt4 book ai didi

python - 根据列表中的字符串重命名 pandas 中的列

转载 作者:行者123 更新时间:2023-12-01 00:06:19 25 4
gpt4 key购买 nike

我尝试根据列表 (updated_fist_stage) 中的字符串(作为列名称的子字符串)替换数据帧 (sens_second_X) 的列名称。updated_fist_stage = ['ccc_230', 'LN_S_P500', 'mf_100']

sens_second_X.columns = ['resid', 'ccc_230_TY',
EQ_ETF',
'LN_S_P500_changes', 'mf_100_equity', 'inflows_2009',
'inflows_2010']

我尝试按如下方式执行此操作:

def renaming_fun(x):
for var in updated_fist_stage:
if var in x:
return var
return x
sens_second_X.columns = map(renaming_fun, sens_second_X.columns)

但我发现数据框中只有 ccc_230 被重命名,输出如下:

sens_second_X.columns = ['resid', 'ccc_230',
EQ_ETF',
'LN_S_P500_changes', 'mf_100_equity', 'inflows_2009',
'inflows_2010']

最佳答案

您可以使用 str.extract 尝试如下所示的操作

mapped = sens_second_X.columns.str.extract(r'({})'.format('|'.join(updated_fist_stage))
,expand=False)
sens_second_X.columns = pd.Index(pd.Series(mapped).fillna(pd.Series(sens_second_X.columns)))
<小时/>
Index(['resid', 'ccc_230', 'EQ_ETF', 'LN_S_P500', 'mf_100', 'inflows_2009',
'inflows_2010'],
dtype='object')

关于python - 根据列表中的字符串重命名 pandas 中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59952801/

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