gpt4 book ai didi

python - 如何在不引用旧列名和不创建新数据框的情况下更改列名?

转载 作者:行者123 更新时间:2023-12-04 08:48:03 24 4
gpt4 key购买 nike

我知道我可以通过执行以下操作来更改列名:

df = df.rename(columns = {old_name: new_name})
但是我必须重命名很多,并且旧名称很长,所以我只想传递新名称的列表。如果我将新列设为自己的数据框,这可以正常工作:
ranks = sw[sw.columns[9:15]]
ranks.columns = ['ranking_1', 'ranking_2', 'ranking_3', 'ranking_4', 'ranking_5', 'ranking_6']
但是,如果我尝试仅使用列切片而不将其更改为自己的 df,则不会发生任何事情:
sw[sw.columns[9:15]].columns = ['ranking_1', 'ranking_2', 'ranking_3', 'ranking_4', 'ranking_5', 'ranking_6']
如何重命名列并将它们保留在原始数据框中?

最佳答案

这个:

sw[sw.columns[9:15]] = ['ranking_1', 'ranking_2', 'ranking_3', 'ranking_4', 'ranking_5', 'ranking_6']
更改您的 sw 的数据,而不是列名。手动更改列名的方法可以是:
# new column names
new_cols = ['ranking_1', 'ranking_2', 'ranking_3', 'ranking_4', 'ranking_5', 'ranking_6']

# slice the columns name, replace the part you want and concatenate
sw.columns = list(sw.columns[:9]) + new_cols + list(sw.columns[15:])
或者您也可以构建字典并使用 rename :
rename_dict = {a:b for a,b in zip(new_cols, sw.columns[9:15])}
sw.rename(columns=rename_dict)

关于python - 如何在不引用旧列名和不创建新数据框的情况下更改列名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64215714/

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