gpt4 book ai didi

python - 创建函数以重命名 Pandas 数据框中的列

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

我有如下数据框:

df = pd.DataFrame({'$a':[1,2], '$b': [10,20]})

我尝试创建一个允许动态更改列名的函数,我可以在函数中输入旧列名和新列名,如下所示:

def rename_column_name(df, old_column, new_column):
df = df.rename({'{}'.format(old_column) : '{}'.format(new_column)}, axis=1)
return df

此功能仅在我只有一个输入时适用,如下所示:

new_df = rename_column_name(df, '$a' , 'a')

给我这个 new_df 如下:

new_df = pd.DataFrame({'a':[1,2], '$b': [10,20]})

但是,我想创建一个函数,允许我根据自己的喜好对多个/一个列进行更改:

new_df = rename_column_name(df, ['$a','$b'] , ['a','b'])

然后得到如下的new_df

new_df = pd.DataFrame({'a':[1,2], 'b': [10,20]})

那么,如何让我的函数更具动态性,让我可以自由输入多个/一个列名称并重命名它们?

最佳答案

你不需要一个函数,你可以使用dict comprehension来做到这一点:

In [265]: old_names = df.columns.tolist()                                                                                                                                                                   

In [266]: new_names = ['a','b']

In [268]: df = df.rename(columns=dict(zip(old_names, new_names)))

In [269]: df
Out[269]:
a b
0 1 10
1 2 20

OP需要的功能:

In [274]: def rename_column_name(df, old_column_list, new_column_list): 
...: df = df.rename(columns=dict(zip(old_column_list, new_column_list)))
...: return df
...:

In [275]: rename_column_name(df,old_names,new_names)
Out[275]:
a b
0 1 10
1 2 20

您需要将列的列表 传递给此函数。它可以是多列或单列。这应该可以满足您的需求。

关于python - 创建函数以重命名 Pandas 数据框中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61789700/

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