熊猫根据另一列的值创建条件列

时间:2018-09-20 11:07:46

标签: python pandas

我有两个df

df1:

index    text
1        string1
2        string2
3        string3
4        a
5        string5
6        a

df2:

index    text
4        string4
6        string6

如何根据索引将df1中的文本“ a”替换为df2中的值,以便显示如下。

df3:

index    text
1        string1
2        string2
3        string3
4        string4
5        string5
6        string6

2 个答案:

答案 0 :(得分:1)

您可以将熊猫update用作:

df1.set_index('index',inplace=True)
df2.set_index('index',inplace=True)
df1.update(df2) #df1 is changed

df1.loc[df2.index,'text'] = df2['text'] #df1 is changed

或者输出要在df3中

df3 = df1.copy()
df3.update(df2) #df3 is changed

所有人都产生:

       text
index   
1   string1
2   string2
3   string3
4   string4
5   string5
6   string6

答案 1 :(得分:0)

这将起作用

pd.merge(df1[[]], df2, left_index=True, right_index=True)

df2.loc[df1.index]