pandas 重命名DataFrame中列的循环

w41d8nur  于 2023-08-01  发布在  其他
关注(0)|答案(2)|浏览(98)

我试图用这个循环重命名Dataframe的列。然而,只需重命名列表(列)中包含名称的第一项。

for col in df_wine.columns[1:]:
    for names in column:
        df_wine = df_wine.rename(columns = {col : names})

字符串
我希望这将从列表中提取每个项目(名称)。

3b6akqbq

3b6akqbq1#

通常在pandas中,除非你传递inplace=True,否则操作不会修改原始数据框,它会返回一个新的数据框,也就是说,你需要这样做

df = df.rename()

字符串
第二,你需要通过Map(即。字典)在旧列和新列之间。您正在重复传递一个旧列和所有新列的列表之间的Map。
相反你只需要

df = df.rename({"old_col_1":"new_col_1", "old_col_2":"new_col_2", ...})


您可能需要使用dictionary comprehension来构建这个字典,但是从示例中很难分辨新旧列之间的关联。

gojuced7

gojuced72#

我觉得你想要这样:

old = df_wine.columns[1:]
mapping = { o:n for o,n in zip(old,column) }
df_wine.rename( columns=mapping, inplace=True )

字符串
只要建立一个字典,从旧到新,并在一个镜头完成。

相关问题