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

如何用Pandas通过循环合并12个月数据集?代码运行异常求助

代码问题排查与修正

问题1:文件路径拼接错误

代码里路径拼接时,sales_Data和文件名之间缺少路径分隔符/,导致生成的路径无效(比如变成./Pandas-Data-Science-Tasks-master/SalesAnalysis/sales_DataJanuary.csv这类错误格式),会触发文件找不到的异常。

问题2:pd.concat参数使用错误

pd.concat()要求传入DataFrame的列表,你直接传了两个单独的DataFrame,会导致参数不匹配的错误。

修正后的代码

import os
import pandas as pd

# 定义目标路径
data_path = './Pandas-Data-Science-Tasks-master/SalesAnalysis/sales_Data/'
# 只筛选csv文件,避免目录里的非数据文件干扰
files = [file for file in os.listdir(data_path) if file.endswith('.csv')]

concat_data = pd.DataFrame()

for file in files:
    # 使用os.path.join拼接路径,兼容不同系统
    df = pd.read_csv(os.path.join(data_path, file))
    # 传入DataFrame列表给concat
    concat_data = pd.concat([concat_data, df], ignore_index=True)

# 查看合并后的数据
print(concat_data)

额外优化建议

  • 用os.path.join拼接路径,能自动适配Windows和Linux的路径分隔符,避免手动加斜杠的错误。
  • 添加ignore_index=True参数,合并后重置索引,避免原索引重复混乱。
  • 先把所有DataFrame存入列表,最后一次性合并,比循环里每次合并效率更高(数据量大时更明显):
import os
import pandas as pd

data_path = './Pandas-Data-Science-Tasks-master/SalesAnalysis/sales_Data/'
files = [file for file in os.listdir(data_path) if file.endswith('.csv')]

df_list = []
for file in files:
    df = pd.read_csv(os.path.join(data_path, file))
    df_list.append(df)

concat_data = pd.concat(df_list, ignore_index=True)
print(concat_data)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 05:52:10