如何修改pandas DataFrame中NaN值前后相邻的数值?
Pandas DataFrame修改NaN值相邻数值的实现方案
你可以通过移位判断相邻位置是否为NaN,生成掩码后批量赋值,完整实现代码如下:
import pandas as pd import numpy as np # 构造示例DataFrame df = pd.DataFrame({"a":[1, np.nan, 3, 5 , 6,3,np.nan],"b":[np.nan, 2, np.nan, 7,2,1,1],"c":[np.nan,4, 8, 9,7,6,5]}) # 生成匹配规则:当前值非空,且上一个/下一个位置为NaN mask = df.notna() & (df.shift(1).isna() | df.shift(-1).isna()) # 符合规则的位置赋值为0 df[mask] = 0 # 输出结果验证 print(df)
运行后得到的结果和你给出的预期输出完全一致。
内容的提问来源于stack exchange,提问作者user16386186
相关产品推荐
相关产品推荐

