如何使用Pandas读取Kaggle多CSV文件数据集?
多CSV文件读取方案
当然可以使用pd.read_csv()处理这类多文件场景,下面提供两种实用的实现方式:
1. 批量合并所有CSV文件(通用场景)
适用于所有CSV文件列结构一致的情况,直接合并为单个DataFrame:
import pandas as pd import glob # 替换为你的CSV文件所在目录路径 csv_dir = "path/to/your/csv/directory/" # 获取目录下所有CSV文件路径 csv_files = glob.glob(f"{csv_dir}*.csv") df_collection = [] for file_path in csv_files: # 读取单个CSV文件 df = pd.read_csv(file_path) # 可选:添加文件来源标记,便于后续溯源 df["source_file"] = file_path.split("/")[-1] df_collection.append(df) # 合并所有DataFrame,重置索引 combined_df = pd.concat(df_collection, ignore_index=True) # 验证合并结果 print(f"合并后总数据量:{combined_df.shape[0]}行,{combined_df.shape[1]}列")
2. 按主题分组合并(针对分part的类别)
针对你的数据集中像Books、Clothing_Shoes_and_Jewelry这类拆分为多个part的类别,可以按主题分组合并,方便后续按类别分析:
import pandas as pd import glob from collections import defaultdict csv_dir = "path/to/your/csv/directory/" csv_files = glob.glob(f"{csv_dir}*.csv") # 用字典按主题存储对应DataFrame列表 category_data = defaultdict(list) for file_path in csv_files: # 提取主题名称(如从"Books_5_part0.csv"中提取"Books") category_name = file_path.split("/")[-1].split("_5_part")[0] df = pd.read_csv(file_path) category_data[category_name].append(df) # 合并每个主题下的多part文件 merged_category_dfs = { cat: pd.concat(df_list, ignore_index=True) for cat, df_list in category_data.items() } # 示例:查看Books类别的合并结果 print(f"Books类别总数据量:{merged_category_dfs['Books'].shape[0]}行")
关键注意点
- 若不同文件列结构不一致,合并前需统一列(比如用
usecols指定共同列,或填充缺失列); - 若单文件过大,可添加
chunksize参数分块读取(如pd.read_csv(file_path, chunksize=10000)),逐块合并避免内存压力。
内容的提问来源于stack exchange,提问作者Mohamad Osama
相关产品推荐
相关产品推荐

