Nikhil Kulkarni
Nikhil Kulkarni

Reputation: 49

Pandas combine two dataframes to update values of a particular column in 1st dataframe

I have two dataframes:


df1 :
    A     B     C
0   a0    b0    c0
1   a1    b1    c1
2   a2    b2    c2
3   a3    b3    c3
4   a4    b4    c4

df2 :
    A     B     C
0   a0    b0    c11
1   a1    b1    c5
2   a70   b2    c20
3   a3    b9    c9

In df1, for every row, whenever Column A and Column B values are equal to values in df2, column C should be updated with value from df2.

Output:
    A     B     C
0   a0    b0    c11
1   a1    b1    c5
2   a2    b2    c2
3   a3    b3    c3
4   a4    b4    c4

I tried the following, but it did not work.

df1.set_index(['A', 'B'])
df2.set_index(['A', 'B'])
df1.update(df2)
df1.reset_index()
df2.reset_index()

Upvotes: 0

Views: 33

Answers (1)

ombk
ombk

Reputation: 2111

df1["C"][:4] = np.where((df1["A"][:4]==df2["A"])&(df1["B"][:4]==df2["B"]),df2["C"],df1["C"][:4])


    A   B   C
0   a0  b0  c11
1   a1  b1  c5
2   a2  b2  c2
3   a3  b3  c3
4   a4  b4  c4

Upvotes: 1

Related Questions