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

基于file1.txt时间戳补零对齐file2.txt温度数据长度的技术实现问题

基于file1时间戳补全file2数据的Python实现

需求说明

我有两个文本文件file1.txt和file2.txt,第一列是Julian day格式的时间戳,第二列是温度数据。需要以file1.txt的时间戳为基准,给file2.txt补零,让它的长度和file1.txt一致。

输入数据

file1.txt内容:

023 4.5
024 6.8
025 9.8
030 2.3
125 1.4
129 5.8
168 1.0

file2.txt内容:

024 1.2
025 2.3
125 1.6

期望输出

023 0.0
024 1.2
025 2.3
030 0.0
125 1.6
129 0.0
168 0.0

解决方案代码

基于Pandas的合并填充功能可以快速实现需求,代码如下:

import pandas as pd

# 读取文件,指定列名并保留时间戳的字符串格式(避免023变成23)
df1 = pd.read_csv("file1.txt", sep=" ", header=None, names=["time_stamp", "temp"], dtype={"time_stamp": str})
df2 = pd.read_csv("file2.txt", sep=" ", header=None, names=["time_stamp", "temp"], dtype={"time_stamp": str})

# 以df1的时间戳为基准左连接df2,缺失数据用0.0填充
merged_df = df1[["time_stamp"]].merge(df2, on="time_stamp", how="left").fillna(0.0)

# 按要求格式输出结果
for _, row in merged_df.iterrows():
    print(f"{row['time_stamp']} {row['temp']:.1f}")

# 如需保存到文件,可执行下面一行
# merged_df.to_csv("output.txt", sep=" ", header=False, index=False, float_format="%.1f")

关键说明

  • 读取文件时指定dtype={"time_stamp": str},确保三位格式的时间戳不被转为数字丢失前缀零
  • 使用how="left"的合并方式,保证完全保留file1.txt的所有时间戳
  • fillna(0.0)直接将匹配不到的温度数据补为0.0,最后通过格式化字符串输出符合要求的格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 04:45:34