df1
A B C D E F
1 xyz y z 0 1
1 xab z z 0 1
2 xyz x p 1 1
3 xmn m q 2 1
3 xyx n r 3 1
df2
A B C D E F
1 xyz x z 4 1
1 xab y q 3 2
2 xyz z p 8 3
3 xmn q m 1 4
3 xyx r r 32 5
expected Output DF1
df1
A B C D E F
1 xyz y z 4 1
1 xab z z 4 1
2 xyz x p 8 1
3 xmn m q 3 1
3 xyx n r 32 1
i have tried df1.combine_first(df2)
not working as expected
Looking at your output I assume that you want to merge the datasets. . . ?
import pandas as pd
d = {'A': [1, 1, 2, 3, 3],
'B': ['xyz', 'xab', 'xyz', 'xmn', 'xyx'],
'C': ['y', 'z', 'x', 'm', 'n'],
'D': ['z', 'z', 'p', 'q', 'r'],
'E': [0, 0, 1, 2, 3],
'F': [1, 1, 1, 1, 1]}
df1 = pd.DataFrame(data=d)
d = {'A': [1, 1, 2, 3, 3],
'B': ['xyz', 'xab', 'xyz', 'xmn', 'xyx'],
'C': ['x', 'y', 'z', 'q', 'r'],
'D': ['z', 'q', 'p', 'm', 'r'],
'E': [4, 3, 8, 1, 32],
'F': [1, 2, 3, 4, 5]}
df2 = pd.DataFrame(data=d)
df1 = df1.merge(df2[['D', 'E']], how='inner', on='D')
df1['E'] = df1['E_y']
del df1['E_x'], df1['E_y']
Output
Out[41]:
A B C D F E
0 1 xyz y z 1 4
1 1 xab z z 1 4
2 2 xyz x p 1 8
3 3 xmn m q 1 3
4 3 xyx n r 1 32
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.