How to combine two columns
Question:
I have a merged Pandas dataframe in the following format
index
value_x
value_y
0
nan
3
1
3
nan
2
nan
nan
3
-1
1
4
6
nan
5
nan
6
6
-1
nan
7
-1
6
8
nan
nan
Since the original dataframes have the value
field, therefore value_x
and value_y
column is gnerated during the merge process. I would like to merge the two columns so the final column would look like:
index
value_x
value_y
value
0
nan
3
3
1
3
nan
3
2
nan
nan
nan
3
nan
1
1
4
6
nan
6
5
nan
6
6
6
-1
nan
-1
7
nan
6
6
8
nan
nan
nan
In addition, I would like to know if I could avoid the column combining process during the merge process?
Thanks in advance
Answers:
You can use max
df["value"] = df[["value_x", "value_y"]].max(axis=1)
as this will pick the non-nan value for each row. For this question:
In addition, I would like to know if I could avoid the column combining process during the merge process?
the answer depends on what the two dataframes were before the merge.
I have a merged Pandas dataframe in the following format
index | value_x | value_y |
---|---|---|
0 | nan | 3 |
1 | 3 | nan |
2 | nan | nan |
3 | -1 | 1 |
4 | 6 | nan |
5 | nan | 6 |
6 | -1 | nan |
7 | -1 | 6 |
8 | nan | nan |
Since the original dataframes have the value
field, therefore value_x
and value_y
column is gnerated during the merge process. I would like to merge the two columns so the final column would look like:
index | value_x | value_y | value |
---|---|---|---|
0 | nan | 3 | 3 |
1 | 3 | nan | 3 |
2 | nan | nan | nan |
3 | nan | 1 | 1 |
4 | 6 | nan | 6 |
5 | nan | 6 | 6 |
6 | -1 | nan | -1 |
7 | nan | 6 | 6 |
8 | nan | nan | nan |
In addition, I would like to know if I could avoid the column combining process during the merge process?
Thanks in advance
You can use max
df["value"] = df[["value_x", "value_y"]].max(axis=1)
as this will pick the non-nan value for each row. For this question:
In addition, I would like to know if I could avoid the column combining process during the merge process?
the answer depends on what the two dataframes were before the merge.