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

如何逐列比对同一文件内3行数据,存在不匹配则返回FALSE?

解决方案:逐列对比CSV中3行数据并输出结果

嘿,针对你需要逐列对比同一CSV文件中3行数据,不匹配列标记FALSE的需求,我写了一个Python脚本可以直接实现,还能完美匹配你给出的示例格式。

实现思路

  1. 读取CSV内容,处理|分隔符和字段前后的空格(避免空格导致的误判)
  2. 提取表头和需要对比的3行数据
  3. 逐列检查3行数据的对应值是否全部一致,生成结果行(示例里NAME、COMPARNY作为标识列留空,如需对比所有列可调整代码)
  4. 按照原CSV的格式输出内容和结果行

代码实现

import csv

# 读取目标CSV文件(替换成你的文件路径)
with open('your_data.csv', 'r') as file:
    csv_content = file.read()

# 解析每一行,清理字段空格
processed_rows = []
for line in csv_content.splitlines():
    # 按|分割字段,去除前后空格,过滤空字段(因为每行末尾有|)
    fields = [field.strip() for field in line.split('|') if field.strip()]
    processed_rows.append(fields)

# 拆分表头和要对比的3行数据
header = processed_rows[0]
data_rows = processed_rows[1:4]  # 假设文件里只有这3行待对比数据

# 生成结果行:前两列(NAME、COMPARNY)留空,其余列做对比
result_row = ['', '']
for col_index in range(2, len(header)):
    # 获取当前列的所有值
    column_values = [row[col_index] for row in data_rows]
    # 判断所有值是否完全一致
    if all(value == column_values[0] for value in column_values):
        result_row.append("TRUE")
    else:
        result_row.append("FALSE")

# 定义格式化函数,保持和原CSV一致的|分隔样式
def format_row(row):
    return ' | '.join(f' {val} ' for val in row) + '|'

# 输出原内容 + 结果行
for row in processed_rows:
    print(format_row(row))
print(format_row(result_row))

示例效果

输入CSV内容

NAME |COMPARNY | DT1| DT2|
MR.X |ABC | 48737953.20| 11219420.39|
MR.N |XYZ | 48737953.20| 11219421.39|
MR.B |LMN | 48737953.20| 11219420.39|

输出结果

NAME | COMPARNY | DT1 | DT2 |
MR.X | ABC | 48737953.20 | 11219420.39 |
MR.N | XYZ | 48737953.20 | 11219421.39 |
MR.B | LMN | 48737953.20 | 11219420.39 |
 |  | TRUE | FALSE |

自定义调整

  • 如果需要对比所有列(包括NAME和COMPARNY),只需要修改两处:
    1. 将result_row = ['', '']改为result_row = []
    2. 将循环的range(2, len(header))改为range(len(header))
  • 如果你的CSV分隔符不是|,可以修改split('|')里的分隔符。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 03:58:21