我试图用这个循环重命名Dataframe的列。然而,只需重命名列表(列)中包含名称的第一项。
for col in df_wine.columns[1:]: for names in column: df_wine = df_wine.rename(columns = {col : names})
字符串我希望这将从列表中提取每个项目(名称)。
3b6akqbq1#
通常在pandas中,除非你传递inplace=True,否则操作不会修改原始数据框,它会返回一个新的数据框,也就是说,你需要这样做
inplace=True
df = df.rename()
字符串第二,你需要通过Map(即。字典)在旧列和新列之间。您正在重复传递一个旧列和所有新列的列表之间的Map。相反你只需要
df = df.rename({"old_col_1":"new_col_1", "old_col_2":"new_col_2", ...})
型您可能需要使用dictionary comprehension来构建这个字典,但是从示例中很难分辨新旧列之间的关联。
dictionary comprehension
gojuced72#
我觉得你想要这样:
old = df_wine.columns[1:] mapping = { o:n for o,n in zip(old,column) } df_wine.rename( columns=mapping, inplace=True )
字符串只要建立一个字典,从旧到新,并在一个镜头完成。
2条答案
按热度按时间3b6akqbq1#
通常在pandas中,除非你传递
inplace=True
,否则操作不会修改原始数据框,它会返回一个新的数据框,也就是说,你需要这样做字符串
第二,你需要通过Map(即。字典)在旧列和新列之间。您正在重复传递一个旧列和所有新列的列表之间的Map。
相反你只需要
型
您可能需要使用
dictionary comprehension
来构建这个字典,但是从示例中很难分辨新旧列之间的关联。gojuced72#
我觉得你想要这样:
字符串
只要建立一个字典,从旧到新,并在一个镜头完成。