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

Python处理不匹配列:合并多日期列 缺失日期数据补N/A实现方法

实现方案

核心思路

  • 把原表中4组独立的「日期-对应数值」字段拆分为4个独立子表,所有子表统一将日期列命名为DATE
  • 所有子表按DATE字段做外连接,自动覆盖所有出现过的日期值
  • 对日期列排序后,将缺失值填充为N/A即可得到预期结果

代码实现

依赖pandas库处理,普通体量(百万行级)数据可直接运行:

import pandas as pd
from functools import reduce

# 1. 读取原始数据,根据你的文件格式替换读取方法
df = pd.read_csv("你的数据文件路径.csv")

# 2. 拆分各日期-数值组为独立子表,统一日期列名
df_group1 = df[["DATE", "Data"]].rename(columns={"DATE": "DATE"})
df_group2 = df[["DATE.2", "Data2"]].rename(columns={"DATE.2": "DATE"})
df_group3 = df[["DATE.3", "Data3"]].rename(columns={"DATE.3": "DATE"})
# 第四组包含Data4、Data5两个数值列
df_group4 = df[["DATE.4", "Data4", "Data5"]].rename(columns={"DATE.4": "DATE"})

# 3. 所有子表按DATE外连接合并
df_list = [df_group1, df_group2, df_group3, df_group4]
result = reduce(lambda left, right: pd.merge(left, right, on="DATE", how="outer"), df_list)

# 4. 按日期排序,填充缺失值
result["DATE"] = pd.to_datetime(result["DATE"])
result = result.sort_values("DATE").reset_index(drop=True)
result = result.fillna("N/A")

# 输出结果
print(result.head())
# 可导出为csv:result.to_csv("清洗后结果.csv", index=False)

超大数据量优化

如果你的数据集超过内存承载上限,可以改用dask.dataframe替代pandas,核心合并逻辑完全不变,支持分块读写超大规模数据集,无需修改业务代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 21:06:06