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

如何用Pandas读取Excel中最新时间ID的行并计算写入独立文件

解决方案:仅同步Excel中新增的最新时间行到CSV

核心思路

每次循环时,记录上一次处理的最晚时间戳,只读取Excel中时间晚于该时间戳的行,将这些新行追加写入CSV(而非覆盖),同时更新记录的最晚时间,确保后续循环只处理真正新增的数据。

具体实现(Python示例)

用pandas处理Excel读取和CSV写入,搭配openpyxl引擎读取xlsx文件,步骤如下:

  1. 安装依赖:
pip install pandas openpyxl
  1. 代码示例:
import pandas as pd
from datetime import datetime
import time

# 初始化上次处理的最晚时间(第一次运行设为极早时间)
last_processed_time = datetime.min

# 循环处理逻辑
while True:
    try:
        # 只读模式读取Excel,避免DDE写入时的文件占用冲突
        df_excel = pd.read_excel("你的数据文件.xlsx", engine="openpyxl", parse_dates=["Time"])
        
        # 筛选出时间晚于上次处理的行
        new_rows = df_excel[df_excel["Time"] > last_processed_time]
        
        if not new_rows.empty:
            # 追加写入CSV:第一次写时保留表头,后续只写数据
            write_header = last_processed_time == datetime.min
            new_rows.to_csv("计算用数据.csv", mode="a", index=False, header=write_header, encoding="utf-8")
            
            # 更新上次处理的最晚时间为新行中的最大时间
            last_processed_time = new_rows["Time"].max()
            
            # 这里执行你的计算函数,比如基于新写入的CSV或直接用new_rows
            # your_calculation_function()
        
        # 控制循环间隔,避免频繁读取占用资源(比如每2秒一次)
        time.sleep(2)
    
    except Exception as e:
        print(f"处理出错: {str(e)}")
        time.sleep(5)  # 出错后暂停5秒再重试

关键注意事项

  • 时间格式兼容:确保Excel的Time列能被pandas解析为datetime类型,如果是自定义字符串格式,需在read_excel中指定date_parser参数。
  • 文件占用问题:必须用只读模式读取Excel,否则DDE服务器写入时会触发文件锁定错误;若仍有冲突,可尝试复制Excel临时文件再读取。
  • 重复行处理:如果DDE可能写入重复时间的行,可在筛选时加入drop_duplicates(subset=["Time"], keep="last")去重。
  • 循环间隔:根据数据更新频率调整sleep时长,平衡实时性和资源消耗。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 20:03:30