Pandas如何使用同一行另一列的数值填充空值NA
Pandas列空值替换实现方案
你场景里的空值为空字符串"",不属于Pandas默认识别的NaN缺失值,可通过以下两种方法实现用同行列B的值填充列A空值的需求:
方法1:使用fillna实现(可读性最高,推荐)
先将列A的空字符串转为Pandas缺失值,再用列B的值填充:
import pandas as pd # 你的示例数据 df = pd.DataFrame({"column A": ["Atlanta", "Atlanta", "New York", "",""], "column B": ["AT", "AT", "NY", "1", ""]}) # 核心处理逻辑 df['column A'] = df['column A'].replace("", pd.NA).fillna(df['column B'])
如果你的原始数据中列A的空值本身就是NaN而非空字符串,可以直接简化为:
df['column A'] = df['column A'].fillna(df['column B'])
方法2:使用mask条件替换(无需转换缺失值)
直接针对空字符串做条件匹配替换,不需要提前转换缺失值格式:
df['column A'] = df['column A'].mask(df['column A'] == "", df['column B'])
两种方法运行后均符合你给出的预期输出,最后一行因为列B本身为空,所以填充后列A仍然保持为空。
内容的提问来源于stack exchange,提问作者Daven1
相关产品推荐
相关产品推荐

