my first data frame-
JavaScript
x
9
1
df1 = pd.DataFrame({'CONTRACT':['Tom', 'nick', 'krish', 'jack'],
2
'Net_Qty':[20, 21, 19, 18]})
3
4
CONTRACT Net_Qty
5
0 Tom 20
6
1 nick 21
7
2 krish 19
8
3 jack 18
9
second data frame-
JavaScript
1
8
1
df2 = pd.DataFrame({'CONTRACT':['Tom', 'nick', 'amit', 'joy'],
2
'Net_Qty':[30, 40, 45, 54]})
3
CONTRACT Net_Qty
4
0 Tom 30
5
1 nick 40
6
2 amit 45
7
3 joy 54
8
I want dataframe dataframe Like this (all values of df2 and uncommon values of df1)-
JavaScript
1
8
1
CONTRACT Net_Qty
2
0 Tom 30
3
1 nick 40
4
2 krish 19
5
4 jack 18
6
2 amit 45
7
3 joy 54
8
I tried like this-
JavaScript
1
5
1
cols = list(df1.columns)
2
df1.loc[df1.CONTRACT.isin(
3
df2.CONTRACT), cols] = df2[cols]
4
print(df1)
5
but its not working fine…….
Can anyone please suggest a better way-
Advertisement
Answer
Use pd.concat
and drop_duplicates
:
JavaScript
1
12
12
1
out = pd.concat([df2, df1]).drop_duplicates('CONTRACT', ignore_index=True)
2
print(out)
3
4
# Output
5
CONTRACT Net_Qty
6
0 Tom 30
7
1 nick 40
8
2 amit 45
9
3 joy 54
10
4 krish 19
11
5 jack 18
12