使用另一个df替换列值

时间:2020-10-05 09:27:19

标签: python pandas replace


你好,我有两个df,例如

df1

Ancient New 
Seq1.1  Seq1.1_A
Seq2    Se2.4_3

和另一个

df2

COL1 COL2
A    Seq1.1
B    Plants
C    YP_OODDD
D    Seq2

,我想替换与COL2列对应的df.Ancient值,并用其对应的df1.New

替换它

并获得

COL1 COL2
A    Seq1.1_A
B    Plants
C    YP_OODDD
D    Se2.4_3

2 个答案:

答案 0 :(得分:2)

Series.replaceDataFrame.set_index创建的Series一起使用,并选择数量New

df2['COL2'] = df2['COL2'].replace(df1.set_index('Ancient')['New'])
print (df2)
  COL1      COL2
0    A  Seq1.1_A
1    B    Plants
2    C  YP_OODDD
3    D   Se2.4_3

答案 1 :(得分:1)

将第一个数据帧的索引设置为古代df.set_index,然后使用df2.col2.replace(df.new)传递系列作为参数。

    df=pd.DataFrame({"col1":["john","amber"],"col2":["a","h"]})
    df2=pd.DataFrame({"ab":["m","g"],"ful":["abraham","heard"]})
    print(df,"\n",df2)
    df2.set_index("ab",inplace=True)
    df.col2=df.col2.replace(df2['ful'])
    df

输出:

        col1 col2
    0   john    a
    1  amber    h 

       ab      ful
    0  a  abraham
    1  h    heard

        col1    col2
    0   john    abraham
    1   amber   heard