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

多CSV文件产品销售排名对比:计算日度排名变动需求

嘿,我来帮你搞定这个自动化的需求!手动处理几个CSV确实麻烦,用Python或者Excel Power Query都能高效解决,下面给你详细的方案:

方案1:Python脚本自动化(推荐,灵活性强)

这个方案适合需要批量处理、自定义输出的场景,用pandas库就能轻松实现数据读取、合并和排名计算。

准备工作

  • 确保你的CSV文件命名规则统一(比如Sale_YYYY_MM_DD.csv),方便脚本自动识别日期顺序
  • 安装依赖库:打开终端执行 pip install pandas

完整脚本示例

import pandas as pd
import glob
from datetime import datetime

# 1. 批量读取所有Sale开头的CSV文件,并按日期排序
csv_files = glob.glob("Sale_*.csv")
# 从文件名中提取日期,按时间先后排序文件
csv_files_sorted = sorted(
    csv_files,
    key=lambda x: datetime.strptime("_".join(x.split('_')[1:4]), "%Y_%m_%d")
)

# 2. 取最后两个文件(默认对比最新的两天,如需指定日期可手动替换文件名)
prev_day_file = csv_files_sorted[-2]
current_day_file = csv_files_sorted[-1]

# 3. 读取两天的销售数据,只保留需要的列
prev_df = pd.read_csv(prev_day_file, usecols=["position", "Products"])
current_df = pd.read_csv(current_day_file, usecols=["position", "Products"])

# 4. 合并数据并计算排名变动
prev_df = prev_df.rename(columns={"position": "prev_position"})
# 按产品名称合并,只保留当天在榜的产品
merged_df = pd.merge(current_df, prev_df, on="Products", how="left")

# 计算变动:前一天排名 - 当天排名,正数表示上升,负数表示下降,NaN标记为新上榜
merged_df["rank_change"] = merged_df["prev_position"] - merged_df["position"]
merged_df["rank_change"] = merged_df["rank_change"].apply(
    lambda x: f"+{int(x)}" if x > 0 else (str(int(x)) if x < 0 else "New")
)

# 5. 输出结果并保存为新文件
print(f"=== {current_day_file} 内容及排名变动 ===")
print(merged_df.to_string(index=False))
# 保存带变动的结果到新CSV
output_filename = f"Rank_Report_{current_day_file.split('_')[1]}_{current_day_file.split('_')[2]}_{current_day_file.split('_')[3]}"
merged_df.to_csv(output_filename, index=False)

脚本扩展说明

  • 如果需要对比指定日期的文件,直接替换prev_day_file和current_day_file的路径即可,比如prev_day_file = "Sale_2018_04_10.csv"
  • 若要批量处理所有相邻日期的文件,可以添加循环遍历csv_files_sorted,逐一对比每一对前后日期
  • 如果需要展示掉榜的产品,将merge的how参数改为outer,并添加逻辑标记掉榜状态
方案2:Excel Power Query(适合不熟悉代码的用户)

如果不想写代码,Excel的Power Query也能实现半自动化,每次新增CSV文件只需刷新数据即可:

  • 打开Excel,点击「数据」选项卡 → 「获取数据」→「从文件」→「从文件夹」,选择CSV所在的文件夹
  • 在Power Query编辑器中,添加自定义列提取文件名中的日期(拆分Sale_YYYY_MM_DD.csv的日期部分),按日期排序
  • 通过「分组依据」和「合并查询」功能,将当天数据与前一天数据关联,计算排名变动
  • 加载数据到Excel工作表,后续新增CSV文件后,点击「数据」→「全部刷新」即可更新报告

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:13:26