gpt4 book ai didi

python - 如何使用字典重命名列?

转载 作者:行者123 更新时间:2023-11-30 21:57:08 26 4
gpt4 key购买 nike

我有几个 pandas DataFrame,我想对齐它们的列名称,以便所有它们都具有相同的特定列名称(不是所有列)。

在我的真实数据集中,我有很多列,但下面我提供了 3 个 DataFrame 的简化示例。它们都有相同的内容,但这样做是为了简化示例。

df1 =

col1 col2 col3
111 123 abc
122 331 zzz

df2 =

colA colB col3
111 123 abc
122 331 zzz

df3 =

col_1 col_2 col3
111 123 abc
122 331 zzz

然后我有以下字典,指定相似的列(实际上字典更大):

col_names = {
"col1": ["colA", "col_1"],
"col2": ["colB", "col_2"]
}

这意味着列 colAcol_1 应重命名为 col1,列 colBcol_2 应重命名为 col2

我知道如何在 pandas DataFrame 中一一重命名列:

df.rename(columns={"colA": "col1"}, inplace=True)

但是,我很困惑如何使用字典灵活地重命名列?

最佳答案

df1.rename(columns={col_names[key][0]: key for key in col_names}, inplace=True)
df2.rename(columns={col_names[key][1]: key for key in col_names}, inplace=True)

如果字典中值的顺序是随机的,并且您不确定数据框中的列,那么您可以使用。

df1 = pd.DataFrame({'col1': [1]*3, 'col2': [2]*3, 'col3': [3]*3})
df2 = pd.DataFrame({'colA': [11]*3, 'colB': [22]*3, 'col3': [33]*3})
df3 = pd.DataFrame({'col_1': ['a']*3, 'col_2': ['b']*3, 'col3': ['c']*3})
col_names = {
"col1": ["colA", "col_1"],
"col2": ["colB", "col_2"]
}
cols = {}
for key,value in col_names.items():
for v in value:
cols[v] = key
for df in [df1,df2,df3]:
df.rename(columns=cols, inplace=True)

关于python - 如何使用字典重命名列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55364515/

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