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

如何用Pandas动态合并多份月度网站数据CSV文件

动态合并月度CSV数据为宽格式DataFrame

以下是实现动态合并月度CSV文件并输出目标格式的完整步骤:

步骤1:导入依赖库

import pandas as pd
import glob

步骤2:获取所有CSV文件

你用的glob写法完全没问题,直接用即可:

all_filenames = glob.glob("*.csv")

步骤3:读取并处理每个CSV文件

循环遍历所有文件,从文件名中提取月份名称(去掉.csv后缀),将每个文件的Value列重命名为对应月份,同时保留URL列作为关联键:

dfs = []
for filename in all_filenames:
    # 从"January.csv"这类文件名中提取"January"作为月份名
    month_name = filename.replace(".csv", "")
    # 读取CSV文件
    df = pd.read_csv(filename)
    # 重命名Value列,避免合并时列名冲突
    df = df.rename(columns={"Value": month_name})
    dfs.append(df)

步骤4:合并所有DataFrame

以URL为基准列,依次合并所有处理后的DataFrame:

# 以第一个DataFrame为合并起点
merged_df = dfs[0]
# 循环合并剩余的DataFrame
for df in dfs[1:]:
    # 如果所有文件的URL完全一致,用how="inner";若存在URL缺失情况,用how="outer"保留所有URL
    merged_df = pd.merge(merged_df, df, on="URL", how="outer")

步骤5:导出合并后的CSV

merged_df.to_csv("merged_monthly_data.csv", index=False)

完整代码整合

import pandas as pd
import glob

# 获取文件夹内所有CSV文件
all_filenames = glob.glob("*.csv")

# 批量读取并处理每个文件
dfs = []
for filename in all_filenames:
    month_name = filename.replace(".csv", "")
    df = pd.read_csv(filename)
    df = df.rename(columns={"Value": month_name})
    dfs.append(df)

# 合并所有月度数据
merged_df = dfs[0]
for df in dfs[1:]:
    merged_df = pd.merge(merged_df, df, on="URL", how="outer")

# 导出最终结果
merged_df.to_csv("merged_monthly_data.csv", index=False)

后续新增的月度CSV文件(比如April.csv、May.csv)只要放在同一文件夹下,运行这段代码就能自动完成合并,完全适配动态新增的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 10:10:35