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

如何合并多个CSV文件并创建带MultiIndex的Pandas DataFrame

Pandas合并CSV文件并添加文件名作为外层索引

嘿,你已经搞定了CSV文件的匹配工作,接下来只需要给pd.concat()加个小参数就能轻松实现你的需求啦!

修改后的完整代码

import pandas as pd
import glob

# 匹配文件夹中的csv文件
extension = 'csv'
all_filenames = [i for i in glob.glob('*.{}'.format(extension))]

# 合并时传入keys参数,关联文件名作为外层索引
combined_csv = pd.concat([pd.read_csv(f) for f in all_filenames], keys=all_filenames)

关键说明

  • 这里的keys=all_filenames会把每个CSV文件名对应到它读取后的DataFrame,合并后的结果会生成两层索引:外层是你要的文件名,内层是每个CSV原本的行索引。
  • 之后你就可以直接用combined_csv.loc['Book1.csv']快速定位到对应文件的所有数据,完全符合你的需求!

进阶优化(可选)

如果你想让索引的含义更清晰,还可以给两层索引添加自定义名称:

combined_csv = pd.concat(
    [pd.read_csv(f) for f in all_filenames],
    keys=all_filenames,
    names=['Source_File', 'Original_Row_Index']  # 给索引命名,提升可读性
)

这样后续查看或操作索引时,能更直观地知道每个层级代表的含义。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:38:39