首页 > 解决方案 > Python Pandas 将数值从上面替换为最接近的非数字

问题描述

我遇到了一个问题,如果您能帮助解决,我将不胜感激:

假设有一列有多行,如下图所示,我想用上面最接近的非数值替换所有数值,python和pandas怎么办?多谢。

点击查看图片

标签: pythonpandas

解决方案


to_numericwithnotna用于布尔掩码,替换为NaNs mask,然后向前填充先前的值:

mask = pd.to_numeric(df['col'], errors='coerce').notna()
df['col'] = df['col'].mask(mask).ffill()
print (df)
    col
0    AB
1    AB
2    AB
3    AB
4    AB
5    CD
6    CD
7    CD
8   EFG
9   EFG
10  EFG
11  EFG

推荐阅读