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

每日更新Pandas DataFrame:如何实现每日追加数据?

没问题!我帮你调整出一个能持久保存历史数据、每日仅追加新数据的方案,完全贴合你的需求:

实现持久化追加数据的Pandas DataFrame方案

核心思路

  • 用本地文件(比如CSV)作为历史数据的持久化存储载体
  • 每次运行脚本时遵循以下流程:
    1. 检查历史数据文件是否存在,存在则直接加载为DataFrame
    2. 获取当日的新数据(替换成你的真实接口请求逻辑)
    3. 将新数据追加到历史DataFrame中
    4. 把更新后的DataFrame重新保存回本地文件,覆盖旧文件

完整代码示例

import pandas as pd
import requests
from random import choice  # 这里是模拟数据用的,你可以替换成真实接口逻辑

# 定义历史数据的存储路径,可根据你的需求修改
HISTORY_CSV_PATH = "lineup_history.csv"

def get_daily_new_data():
    """模拟获取当日新数据的函数,把这里换成你的真实接口请求"""
    # 示例模拟数据,实际场景中改成requests.get(...)解析响应的逻辑
    sample_daily_data = [
        {"date": "2024-05-20", "player": choice(["LeBron", "Curry", "Durant"]), "position": choice(["PG", "SF", "C"])},
        {"date": "2024-05-20", "player": choice(["Harden", "Davis", "Booker"]), "position": choice(["SG", "PF", "SG"])}
    ]
    return pd.DataFrame(sample_daily_data)

def main():
    # 1. 加载历史数据(首次运行则创建空DataFrame)
    try:
        lineup_df = pd.read_csv(HISTORY_CSV_PATH)
        print(f"成功加载历史数据,当前已有 {len(lineup_df)} 条记录")
    except FileNotFoundError:
        # 首次运行时初始化空DataFrame,列名根据你的数据结构定义
        lineup_df = pd.DataFrame(columns=["date", "player", "position"])
        print("未找到历史数据,创建新的空DataFrame")
    
    # 2. 获取当日新数据
    daily_new_df = get_daily_new_data()
    print(f"获取到当日新数据 {len(daily_new_df)} 条")
    
    # 3. 追加新数据到历史DataFrame
    lineup_df = pd.concat([lineup_df, daily_new_df], ignore_index=True)
    
    # 可选:如果担心接口返回重复数据,添加去重逻辑
    # lineup_df = lineup_df.drop_duplicates(subset=["date", "player"], keep="last").reset_index(drop=True)
    
    # 4. 保存更新后的历史数据
    lineup_df.to_csv(HISTORY_CSV_PATH, index=False)
    print(f"数据已保存,当前总记录数:{len(lineup_df)}")

if __name__ == "__main__":
    main()

关键细节说明

  • 持久化选择:示例用CSV是因为简单易读,如果你数据量较大,也可以换成Excel、SQLite或者数据库来存储
  • 去重逻辑:如果你的接口可能返回重复数据,可以取消代码里的去重注释,基于唯一标识(比如日期+球员名)去重
  • 接口替换:把get_daily_new_data函数里的模拟代码,换成你的真实requests请求和数据解析逻辑即可

这样每次运行脚本,都会自动加载已有历史数据,只追加当日新内容,完全不用每次新建lineup_df~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:11:47