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

如何用Pandas合并两个不同长度的txt文件,缺省补0保留长表全部行

实现代码

你出现行数只有8000的核心原因是默认用了内连接,只会保留两个表共有的匹配行,换成左连接并做空值填充即可实现需求:

步骤1:正确读取无表头数据集

import pandas as pd

# 定义8个列名,第一列col_1为时间戳连接键
col_list = [f"col_{i}" for i in range(1, 9)]
# 读取时指定无表头,避免把第一行数据误识别为列名
df_a = pd.read_csv("path_a.txt", header=None, names=col_list)
df_b = pd.read_csv("path_b.txt", header=None, names=col_list)

# 可选操作:统一时间戳列的数据类型,避免int/str类型不一致导致匹配失效
df_a["col_1"] = df_a["col_1"].astype(int)
df_b["col_1"] = df_b["col_1"].astype(int)

步骤2:左连接合并+空值填0

# 以df_a为左表做左连接,完整保留df_a的50000行,重名列加_b后缀区分df_b字段
merged_df = pd.merge(
    left=df_a,
    right=df_b,
    on="col_1",
    how="left",
    suffixes=("", "_b")
)

# 所有df_b未匹配到的空值统一填充为0
merged_df = merged_df.fillna(0)

# 验证输出形状,预期为(50000, 15)
print(merged_df.shape)

步骤3(可选):导出结果

如果需要输出和输入格式一致的无表头txt文件,执行以下代码:

merged_df.to_csv("merged_output.txt", header=False, index=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 10:06:03