我正试图根据值将两列合并为第三列。原始数据
|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