gpt4 book ai didi

python - 如何使用 Pandas 并行读取 .xls?

转载 作者:行者123 更新时间:2023-11-28 19:17:38 26 4
gpt4 key购买 nike

我想使用 pandas 并行读取一个大的 .xls 文件。目前我正在使用这个:

LARGE_FILE = "LARGEFILE.xlsx"
CHUNKSIZE = 100000 # processing 100,000 rows at a time

def process_frame(df):
# process data frame
return len(df)

if __name__ == '__main__':
reader = pd.read_excel(LARGE_FILE, chunksize=CHUNKSIZE)
pool = mp.Pool(4) # use 4 processes

funclist = []
for df in reader:
# process each data frame
f = pool.apply_async(process_frame,[df])
funclist.append(f)

result = 0
for f in funclist:
result += f.get(timeout=10) # timeout in 10 seconds

虽然它运行了,但我认为它实际上并没有加快读取文件的过程。有没有更有效的方法来实现这一目标?

最佳答案

仅供引用:我在大约 4 秒内读取了 13 MB、29000 行的 csv。 (不使用并行处理)Archlinux、AMD Phenom II X2、Python 3.4、python-pandas 0.16.2。

您的文件有多大,读取它需要多长时间?这将有助于更好地理解问题。你的excel表格很复杂吗?也许 read_excel 难以处理这种复杂性?

建议:安装 genumeric 并使用辅助函数 ssconvert 将文件转换为 csv。在您的程序中更改为 read_csv。检查 ssconvert 使用的时间和 read_csv 花费的时间。顺便说一句,python-pandas 从版本 13 .... 16 开始有了重大改进,因此有助于检查您是否拥有最新版本。

关于python - 如何使用 Pandas 并行读取 .xls?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31551080/

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