要从多个目录中读取多个.parquet文件到单个pandas数据帧中,可以按照以下步骤进行操作:
import pandas as pd
import glob
def read_parquet_file(file_path):
return pd.read_parquet(file_path)
def read_parquet_files_from_directories(directories):
files = []
for directory in directories:
files.extend(glob.glob(directory + "/*.parquet"))
data_frames = []
for file in files:
data_frames.append(read_parquet_file(file))
return pd.concat(data_frames, ignore_index=True)
glob.glob
函数来获取每个目录中的所有.parquet文件,并将文件路径存储在一个列表中。然后,使用read_parquet_file
函数来读取每个文件,并将返回的数据帧存储在一个列表中。pd.concat
函数将所有数据帧合并为一个单独的数据帧,ignore_index=True
参数用于重置合并后数据帧的索引。以下是一个完整的示例代码:
import pandas as pd
import glob
def read_parquet_file(file_path):
return pd.read_parquet(file_path)
def read_parquet_files_from_directories(directories):
files = []
for directory in directories:
files.extend(glob.glob(directory + "/*.parquet"))
data_frames = []
for file in files:
data_frames.append(read_parquet_file(file))
return pd.concat(data_frames, ignore_index=True)
directories = ["directory1", "directory2", "directory3"] # 替换为实际的目录路径
df = read_parquet_files_from_directories(directories)
请注意,上述代码假设.parquet文件存储在多个目录中,并且所有文件具有相同的数据结构。如果文件具有不同的数据结构,合并数据帧可能会导致列对齐问题。在这种情况下,您可能需要对每个数据帧进行必要的数据清洗和转换,以确保最终的数据帧具有一致的结构。
领取专属 10元无门槛券
手把手带您无忧上云