Chr*_*olt 0 python nan dataframe pandas
我有一个dataframe喜欢下面的。我想用NaN值之间的值填充两个现有值之间的值NaN,而不是现有值两侧的值。
time_expanded    start_time    end_time    name
10:30:00         NaN           NaN         NaN
10:30:10         10:30:10      10:30:40    11v11
10:30:20         NaN           NaN         NaN
10:30:30         NaN           NaN         NaN
10:30:40         10:30:10      10:30:40    11v11
10:30:50         NaN           NaN         NaN
10:31:00         10:31:00      10:31:20    zonal_game
10:31:10         NaN           NaN         NaN
10:31:20         10:31:00      10:31:20    zonal_game
10:31:30         NaN           NaN         NaN
预期输出:
time_expanded    start_time    end_time    name
10:30:00         NaN           NaN         NaN
10:30:10         10:30:10      10:30:40    11v11
10:30:20         10:30:10      10:30:40    11v11
10:30:30         10:30:10      10:30:40    11v11
10:30:40         10:30:10      10:30:40    11v11
10:30:50         NaN           NaN         NaN
10:31:00         10:31:00      10:31:20    zonal_game
10:31:10         10:31:00      10:31:20    zonal_game
10:31:20         10:31:00      10:31:20    zonal_game
10:31:30         NaN           NaN         NaN
你怎样才能做到这一点?
非常感谢任何帮助!
您可以使用ffill但仅保留ffill等于的值bfill:
df.ffill().where(df.ffill() == df.bfill())
  time_expanded start_time  end_time        name
0      10:30:00        NaN       NaN         NaN
1      10:30:10   10:30:10  10:30:40       11v11
2      10:30:20   10:30:10  10:30:40       11v11
3      10:30:30   10:30:10  10:30:40       11v11
4      10:30:40   10:30:10  10:30:40       11v11
5      10:30:50        NaN       NaN         NaN
6      10:31:00   10:31:00  10:31:20  zonal_game
7      10:31:10   10:31:00  10:31:20  zonal_game
8      10:31:20   10:31:00  10:31:20  zonal_game
9      10:31:30        NaN       NaN         NaN
或者反过来:
df.bfill().where(df.ffill() == df.bfill())
| 归档时间: | 
 | 
| 查看次数: | 585 次 | 
| 最近记录: |