You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中用线性方程Y=aX+b替换DataFrame的缺失值

实现代码

我们使用pandas库完成该需求,以下是完整可运行代码:

情况1:填充为计算后的数值结果

如果需要将缺失值替换为线性方程的实际计算值,使用如下代码:

import pandas as pd
import numpy as np

# 构造示例数据表,你可以替换为读取自己的表格数据(如pd.read_excel、pd.read_csv)
df = pd.DataFrame({
    'Bird1': [22, np.nan, 3, 1],
    'Bird2': [33, 4, np.nan, np.nan],
    'Bird3': ['X0', 'X1', 'X2', 'X3']
})

# 定义线性方程的常数a、b,可根据实际需求修改
a = 2
b = 1

# 从Bird3列提取自变量X的数值(如果你的Bird3本身就是数值,可跳过这一步,直接用row['Bird3']计算)
df['x_val'] = df['Bird3'].str.replace('X', '').astype(int)

# 填充Bird1列的缺失值
df['Bird1'] = df.apply(
    lambda row: a * row['x_val'] + b if pd.isna(row['Bird1']) else row['Bird1'],
    axis=1
)

# 填充Bird2列的缺失值
df['Bird2'] = df.apply(
    lambda row: a * row['x_val'] + b if pd.isna(row['Bird2']) else row['Bird2'],
    axis=1
)

# 删除辅助计算的临时列
df = df.drop(columns=['x_val'])

print(df)

情况2:填充为aX1+b格式的公式字符串

如果需要和示例一样保留公式字符串格式,使用如下代码:

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'Bird1': [22, np.nan, 3, 1],
    'Bird2': [33, 4, np.nan, np.nan],
    'Bird3': ['X0', 'X1', 'X2', 'X3']
})

# 填充Bird1列缺失值
df['Bird1'] = df.apply(
    lambda row: f'a{row["Bird3"]}+b' if pd.isna(row['Bird1']) else row['Bird1'],
    axis=1
)

# 填充Bird2列缺失值
df['Bird2'] = df.apply(
    lambda row: f'a{row["Bird3"]}+b' if pd.isna(row['Bird2']) else row['Bird2'],
    axis=1
)

print(df)

内容的提问来源于stack exchange,提问作者gveronese

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 04:36:06