如何用新的数据框映射列名并将其替换为新值

时间:2019-06-19 17:10:42

标签: python pandas dataframe

我有一个csv文件,如下所示 df1:-

1  2  6  4
u  f  b  h
a  f  r  m
q  r  b  c

现在我还有另一个csv文件,如下所示 df2:-

cat dog fish sand  vent wear
1   2    3    4      5   6

现在我想编写一个python代码,该代码应将列名称与第二个csv映射并替换该值,我在df2中总共有1900列需要映射。

输出csv

   cat dog   wear  sand
    u   f    b     h
    a   f    r     m
    q   r    b     c

有人可以帮我吗

1 个答案:

答案 0 :(得分:4)

您可以使用字典将df2与df.rename()映射

#Convert df2 to dict and switch the string representations of the values with the keys
dct={str(v[0]):k for k,v in df2.to_dict(orient='list').items()}

df1.rename(mapper=dct, axis=1, inplace=True)

    cat dog wear    sand
0   u   f   b       h
1   a   f   r       m
2   q   r   b       c

df1.rename(mapper={str(v[0]):k for k,v in df2.to_dict(orient='list').items()}, axis=1, inplace=True)