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

如何用Pandas将脚本结果按格式写入并实现CSV每日追加更新

问题描述

我是Python新手,接触pandas时间更短,还请见谅新手错误。目前我的脚本能统计其他脚本生成的CSV文件行数,正确存为totalDailyListings,也做了日期格式化,用来统计前一天的房源数据。

当前待统计的CSV结构:

AddressPrice
123 Main St£305,000
55 Chance Way£200,000

我的代码:

from datetime import date, timedelta
import pandas as pd  # 原代码漏了导入pandas

oneday = timedelta(days=1)
yesterdayDate = date.today() - oneday
filename = 'ballymena-' + str(yesterdayDate) + '.csv'

results = pd.read_csv(filename)
totalDailyListings = len(results)
# 计算CSV的正确行数

listings = pd.DataFrame(
    [yesterdayDate, totalDailyListings], columns=['Date', 'Total'])
listings.to_csv('listings-count.csv')

现在无法创建一个仅含Date和Total两列、能每日追加行用于长期监控的CSV文件,期望的CSV格式:

DateTotal
2022-10-04305
2022-10-05200

解决步骤
  1. 修复DataFrame创建错误
    原代码创建listings的方式不对,[yesterdayDate, totalDailyListings]会生成两行单列的数据,而非一行两列。正确写法二选一:
# 方式1:字典列表(更直观)
listings = pd.DataFrame([{'Date': yesterdayDate, 'Total': totalDailyListings}])

# 方式2:二维列表+列名
listings = pd.DataFrame([[yesterdayDate, totalDailyListings]], columns=['Date', 'Total'])
  1. 实现追加写入逻辑
    用to_csv的mode='a'开启追加模式,同时判断目标文件是否存在:文件不存在时写入表头,存在则跳过表头避免重复。完整代码如下:
from datetime import date, timedelta
import pandas as pd
import os

oneday = timedelta(days=1)
yesterdayDate = date.today() - oneday
# 可选:格式化日期确保格式统一
yesterdayDate_str = yesterdayDate.strftime('%Y-%m-%d')
filename = f'ballymena-{yesterdayDate_str}.csv'

# 读取待统计CSV并计数
try:
    results = pd.read_csv(filename)
    totalDailyListings = len(results)
except FileNotFoundError:
    print(f"警告:未找到文件 {filename}")
    totalDailyListings = 0  # 根据需求处理缺失情况

# 创建正确的统计DataFrame
listings = pd.DataFrame([{'Date': yesterdayDate_str, 'Total': totalDailyListings}])

# 追加写入统计CSV
target_file = 'listings-count.csv'
if os.path.exists(target_file):
    listings.to_csv(target_file, mode='a', header=False, index=False)
else:
    listings.to_csv(target_file, index=False)
  1. 额外优化提示
  • 加入try-except捕获文件缺失异常,避免脚本直接崩溃;
  • 用strftime格式化日期,保证日期格式统一为YYYY-MM-DD;
  • 用f-string拼接文件名,代码更简洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 10:30:29