bianning0308 发表于 2025-10-8 08:43:24

新知识,先保存一下,马上学习

SiegfriedStyx 发表于 2025-10-8 09:44:59

点赞,这个真的很实用

小芒果炒酸奶 发表于 2025-10-8 11:58:47

谢谢分享,很实用.

tkiss 发表于 2025-10-8 12:03:35

指定用得到

小生臣巳水 发表于 2025-10-8 12:58:55

又学到一个新的数据分析库了[耶]

petite6er 发表于 2025-10-8 13:08:27

新知识,先保存,再学习

dzp_immortal 发表于 2025-10-8 16:42:06

跟不上啊{:10_266:}

小坛砸 发表于 2025-10-8 21:52:17

import csv
from pathlib import Path
folder = Path("attendance")
out_file = Path("merged.csv")
#增加筛选条件的自定义配置项(后续改条件直接动这里)
target_col = "direction"# 要判断的指定列名
target_value = "OUT"      # 指定列需满足的条件值
# 初始化指定列的索引变量(用于记录列在表头中的位置)
target_col_index = -1
rows = []
header = None
for f in folder.iterdir():
   if f.is_file() and f.suffix.lower() == ".csv" and f.name != out_file.name:
         with f.open("r", newline="", encoding="utf-8", errors="ignore") as rf:
             reader = csv.reader(rf)
             h = next(reader, None)
             if h is None:
               continue
             if header is None:
               header = h
               #校验指定列是否存在,并记录其索引
               if target_col not in header:
                     print(f"错误:表头中未找到指定列 '{target_col}',程序退出。")
                     exit()# 列不存在则直接退出,避免后续报错
               target_col_index = header.index(target_col)# 记录指定列的位置
             elif header != h:
               print(f"警告:{f} 的表头与前者不一致,跳过。")
               continue
             #原“直接追加所有行”逻辑,改为“先筛选再追加”
             for row in reader:
               # 容错处理:避免行数据不完整导致索引越界
               if len(row) <= target_col_index:
                     print(f"警告:{f} 中某行数据长度不足,跳过该行。")
                     continue
               #核心筛选条件:仅保留指定列等于目标值的行
               if row == target_value:
                     rows.append(tuple(row))# 满足条件才追加,不满足则跳过
# 整行去重
unique_rows = list(dict.fromkeys(rows))
if header:
   with out_file.open("w", newline="", encoding="utf-8") as wf:
         writer = csv.writer(wf)
         writer.writerow(header)
         writer.writerows(unique_rows)
   #输出提示补充“筛选”关键词
   print(f"完成,合并并筛选后共 {len(unique_rows)} 条记录 -> {out_file}")
else:
   print("未找到可合并的CSV。")

flyleeer 发表于 2025-10-9 08:15:01

只来打卡了

小明ys 发表于 2025-10-9 17:44:06

不是很会,先收藏了

gymn 发表于 2025-10-9 17:56:33

学习了,谢谢

maric123 发表于 2025-10-9 17:57:44

来学习新的啦

格子penbeat 发表于 2025-10-9 17:58:13

又是学习得一天

PhilMao 发表于 2025-10-9 17:59:49

很实用的功能

Mufeng-MX 发表于 2025-10-9 18:00:06

学习学习

soonkuayue 发表于 2025-10-9 18:12:04

支持下

kyo890814 发表于 2025-10-9 18:21:50

学习到了

疯狗马德森 发表于 2025-10-10 07:52:30

我来打卡学习啦

dafan_ 发表于 2025-10-10 12:27:02

学习学习 又来晚了 但还是学一学

lu10086 发表于 2025-10-10 12:36:40

学到了
页: 1 2 [3] 4
查看完整版本: 合并多个报表数据(★★)