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

Pandas合并含缺失行的数据:如何为缺失值填充默认值?

解决方法

要保留SERVICES中的所有服务(包括TIMES里没有对应数据的条目)并填充默认时间,你需要两步操作:左连接+缺失值填充:

  1. 使用how='left'执行左连接,确保SERVICES的所有行都被保留,即使TIMES中没有匹配的Ref_Id
  2. 用fillna()把TIMES列的缺失值(NaN)替换成默认值15

完整代码示例

import pandas as pd

# 构造示例数据
times = pd.DataFrame({
    'Ref_Id': [1, 2, 3],
    'TIMES': [30, 15, 10]
})

services = pd.DataFrame({
    'Ref_ID': [1, 2, 3, 4],
    'Name': ['Mowing', 'Raking', 'Blowing', 'Trimming']
})

# 左连接,保留services的所有行
services_merged = pd.merge(services, times, left_on='Ref_ID', right_on='Ref_Id', how='left')

# 填充TIMES列的缺失值为15
services_merged['TIMES'] = services_merged['TIMES'].fillna(15)

# 可选:删除重复的Ref_Id列
services_merged = services_merged.drop('Ref_Id', axis=1)

print(services_merged)

输出结果

Ref_ID       Name  TIMES
0       1     Mowing   30.0
1       2     Raking   15.0
2       3     Blowing   10.0
3       4   Trimming   15.0

为什么之前的尝试没解决?

  • inner连接只保留两边都匹配的行,所以Trimming会被过滤掉
  • outer连接会保留两边所有行,但缺失的TIMES仍会显示NaN,需要手动填充
  • left连接本身是正确选择,但你可能没做后续的缺失值填充步骤,所以看不到默认值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 15:57:16