'Are the values of column xy of df1 also present in column zy of df2? [duplicate]
I have two dataframes and I want to check which value of df1 in col1 also occurs in df2 in col1. If it occurs: a 1 in col2_new, otherwise a 0. Is it best to do this using a list? So column of df1 converted into list and then a loop over the column of the other data frame or is there a more elegant way?
df1 (before):
| index | col1 |
|---|---|
| 1 | a |
| 2 | b |
| 3 | c |
df2:
| index | col1 |
|---|---|
| 1 | a |
| 2 | e |
| 3 | b |
df1 (after):
| index | col1 | col2_new |
|---|---|---|
| 1 | a | 1 |
| 2 | b | 1 |
| 3 | c | 0 |
Solution 1:[1]
Use Series.isin with converting mask to integers:
df1['col2_new'] = df1['col1'].isin(df2['col1']).astype(int)
Or:
df1['col2_new'] = np.where(df1['col1'].isin(df2['col1']), 1, 0)
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 |
