gpt4 book ai didi

pandas - 读取文件夹中的多个 Parquet 文件,然后使用python写入单个csv文件

转载 作者:行者123 更新时间:2023-12-05 01:33:08 45 4
gpt4 key购买 nike

我是python的新手,我有一个场景,其中有多个拼写文件,文件名顺序排列。例如:一个文件夹中的par_file1,par_file2,par_file3等,最多100个文件。

我需要按顺序读取从file1开始的 Parquet 文件,并将其写入单个csv文件。写入file1的内容后,应将file2的内容附加到没有标题的同一csv中。请注意,所有文件都具有相同的列名,并且只有数据被拆分为多个文件。

我学习了如何使用pyarrow将单一 Parquet 转换为csv文件,其代码如下:

import pandas as pd    
df = pd.read_parquet('par_file.parquet')
df.to_csv('csv_file.csv')

但是我无法将其扩展为针对多个镶木文件循环并追加到单个csv。
Pandas 有没有办法做到这一点?或其他任何方式都可以提供很大帮助。谢谢你。

最佳答案

如果要将文件复制到本地计算机上并运行代码,则可以执行以下操作。下面的代码假定您在与 Parquet 文件相同的目录中运行代码。它还假定文件的命名与您在上面提供的名称相同:“订单。例如:par_file1,par_file2,par_file3,依此类推,一个文件夹中最多包含100个文件。”如果需要搜索文件,则需要使用glob获取文件名,并显式提供要保存csv的路径:open(r'this\is\your\path\to\csv_file.csv', 'a')希望这会有所帮助。

import pandas as pd

# Create an empty csv file and write the first parquet file with headers
with open('csv_file.csv','w') as csv_file:
print('Reading par_file1.parquet')
df = pd.read_parquet('par_file1.parquet')
df.to_csv(csv_file, index=False)
print('par_file1.parquet appended to csv_file.csv\n')
csv_file.close()

# create your file names and append to an empty list to look for in the current directory
files = []
for i in range(2,101):
files.append(f'par_file{i}.parquet')

# open files and append to csv_file.csv
for f in files:
print(f'Reading {f}')
df = pd.read_parquet(f)
with open('csv_file.csv','a') as file:
df.to_csv(file, header=False, index=False)
print(f'{f} appended to csv_file.csv\n')

您可以根据需要删除打印语句。

使用 python 3.6pandas 0.23.3中测试

关于pandas - 读取文件夹中的多个 Parquet 文件,然后使用python写入单个csv文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51696655/

45 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com