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

Python实现从多个Parquet文件提取带文件名前缀的列名

解决方案:获取带文件名前缀的Parquet文件列名

以下是完善后的代码,可遍历指定目录下的所有Parquet压缩文件,提取每个文件的列名并添加文件名前缀,同时关联对应文件名存储结果:

import glob
import pandas as pd
import os

# 目标文件路径
path = r'C:\Users\NewFOlder1\NewFOlder\Folder' 
# 获取所有.parquet.gzip文件(可根据实际文件后缀调整)
all_files = glob.glob(os.path.join(path, '*.gzip'))

# 用字典存储结果:键为文件名,值为带前缀的列名列表
file_columns = {}

for file_path in all_files:
    # 提取纯文件名(去除完整路径)
    file_name = os.path.basename(file_path)
    # 读取Parquet文件
    df = pd.read_parquet(file_path)
    # 生成带文件名前缀的列名,格式为「文件名_列名」
    prefixed_columns = [f"{file_name}_{col}" for col in df.columns]
    # 将结果存入字典
    file_columns[file_name] = prefixed_columns

# 输出所有文件的带前缀列名
for filename, cols in file_columns.items():
    print(f"文件 {filename} 的带前缀列名:")
    print(cols)
    print("-" * 50)

代码关键点说明

  • 使用os.path.basename提取纯文件名,避免把完整路径作为前缀的一部分,结果更整洁
  • 字典file_columns能清晰对应每个文件和它的带前缀列名,方便后续查看或进一步处理
  • 列表推导式快速生成带前缀列名,代码简洁高效
  • 如果需要检查所有文件的原始列名是否一致,可在循环中加入对比逻辑:
    # 初始化基准列名
    base_columns = None
    for file_path in all_files:
        df = pd.read_parquet(file_path)
        current_cols = df.columns.tolist()
        if base_columns is None:
            base_columns = current_cols
        else:
            if current_cols != base_columns:
                print(f"文件 {os.path.basename(file_path)} 的列名与基准不一致!")
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 20:45:33