Pandas根据有数据的列组合两列



我正试图根据值将两列合并为第三列。原始数据

|Time|  GearUp | GearDn|
|----|---------|-------|  
| 1  |   NaN   |  NaN  |
|2   |  NaN    | DOWN  |
|3   |  NaN    | NaN   |
|4   |  NaN    | NaN   |
|5   |  UP     | NaN   |
|6   |  NaN    | NaN   |
|7   |  NaN    | NaN   |

所需结果:

Time  Gear
1     NaN     
2     DOWN
3     DOWN
4     DOWN
5     UP     
6     UP     
7     UP    

我尝试使用where方法,但依次对每一列使用,但第二次使用重写了第一次使用的数据。

谢谢。

使用

df['Gear'] = df['GearUp'].combine_first(df['GearDown'])

有关文档,请参阅此链接https://pandas.pydata.org/docs/reference/api/pandas.Series.combine_first.html

使用ffill填充NaN值(添加到Deepan Solution(

df['Gear']=df['GearUp'].combine_first(df['GearDn']).ffill()
df
Time    GearUp  GearDn  Gear
0      1       NaN     NaN  NaN
1      2       NaN     DOWN DOWN
2      3       NaN     NaN  DOWN
3      4       NaN     NaN  DOWN
4      5       UP      NaN  UP
5      6       NaN     NaN  UP
6      7       NaN     NaN  UP

最新更新