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

Pandas合并DataFrame时仅返回5行而非预期7行的问题咨询

问题原因

  • 生成独热编码矩阵df_neighbourhood_one时调用了.head()方法,该方法默认仅返回数据前5行,导致df_neighbourhood_one缺少host_id=5、host_id=6对应的两行索引数据
  • pandas merge方法默认使用内连接(inner join),仅保留两个表匹配键同时存在的行,因此最终合并结果只有匹配成功的5行,缺失后两行数据

解决方法

你当前场景只需删除独热编码生成步骤中多余的.head()调用,保证df_neighbourhood_one包含所有7行的索引和独热编码值即可,修改对应代码为:

df_neighbourhood_one = pd.get_dummies(df_neighbourhood['neighbourhood'])

如果实际业务中存在独热编码表缺少部分索引的场景,又需要保留原业务表的所有行,可以将合并逻辑改为左连接,手动填充缺失的独热值为0:

# 改为左连接保留左表所有行
df = pd.merge(df, df_neighbourhood_one, right_index=True, left_on=['host_id', 'id'], how='left')
# 填充缺失的独热编码值为0,转为整型
df[['Centrum', 'North', 'West']] = df[['Centrum', 'North', 'West']].fillna(0).astype(int)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 15:15:04