How to add a new column value based on condition?Having two data set as follows: First data set contain 2 columns as follows:
| Start | End |
|---|---|
| A | B |
| A | C |
| A | D |
| B | A |
| B | C |
| B | E |
| ---------- | ---------------- |
Second data set contain 3 columns.
| start | End | time |
|---|---|---|
| A | B | 8 |
| A | D | 9 |
| A | E | 10 |
| B | A | 7 |
| B | E | 4 |
| ---------- | ---------------- | ---- |
If the start and end are same, add the time with the first data set.How to merge these two columns in python as follows.
| Start | End | Time |
|---|---|---|
| A | B | 8 |
| A | C | nan |
| A | D | 9 |
| B | A | 7 |
| B | C | nan |
| B | E | 4 |
| ---------- | ---------------- | ---- |
CodePudding user response:
df1 = pd.DataFrame({'Start':['A', 'A', 'A', 'B', 'B', 'B'],
'End': ['B', 'C', 'D', 'A', 'C', 'E']})
df2 = pd.DataFrame({'Start':['A', 'A', 'A', 'B', 'B'],
'End': ['B', 'D', 'E', 'A', 'E'],
'time':[ 8, 9, 10, 7, 4]})
result = df1.merge(df2, how='left')
| Start | End | time |
|---|---|---|
| A | B | 8 |
| A | C | nan |
| A | D | 9 |
| B | A | 7 |
| B | C | nan |
| B | E | 4 |
Here I am assuming that your both dataframe saving same column name as Start and End
