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

合并DataFrame时丢失无训练日测试数据的问题求助

解决DataFrame合并丢失测试数据的问题

问题原因

你用how='left'做左连接时,只会保留data(训练数据)里所有的行,test_data中那些没有对应训练记录的Date+About组合会被直接丢弃,这就是测试信息丢失的核心原因。

解决方案

用**外连接(how='outer')**替代左连接,这样会保留两个DataFrame中所有的Date+About组合,两边没有对应值的列会自动填充为NaN,完全覆盖你的需求:

data_combined = data.merge(test_data, on=['Date', 'About'], how='outer')

可选优化:标记数据类型

如果需要明确区分每一行是训练数据、测试数据,还是同一天既有训练又有测试,可以在合并前给两个表添加标记列:

# 给训练数据添加类型标记
data['is_training'] = True
# 给测试数据添加类型标记
test_data['is_test'] = True

# 执行外连接合并
data_combined = data.merge(test_data, on=['Date', 'About'], how='outer')

# 将空值填充为False,明确数据类型
data_combined['is_training'] = data_combined['is_training'].fillna(False)
data_combined['is_test'] = data_combined['is_test'].fillna(False)

内容的提问来源于stack exchange,提问作者E Jager de

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 10:20:47