小编Kor*_*nel的帖子

使用 Python 逐块加载 Excel 文件,而不是将完整文件加载到内存中

我只想从 Excel 文件 (xlsx) 中读取 10 行而不立即加载整个文件,因为它无法在我的一台机器上完成(内存不足)。

我尝试使用

import xlrd
import pandas as pd
def open_file(path):
    xl = pd.ExcelFile(path)
    reader = xl.parse(chunksize=1000)
    for chunk in reader:
        print(chunk)
Run Code Online (Sandbox Code Playgroud)

看起来文件是先加载然后分成几部分。

如何只读取第一行?

python excel file xlsx

6
推荐指数
1
解决办法
3778
查看次数

保存大xlsx文件pandas python

我正在尝试将 20 个 excel 文件连接成一个并将其保存到 excel。它应该在一张纸上。到目前为止,我的想法是将所有文件读入数据帧,将它们连接起来并保存到 excel。连接后,我有一个形状为 (1245226, 20) 的数据框,保存文件后,excel 中的大小为 (1048576, 20),其在磁盘上的大小为 61 MB。下面我发布了我测试过的保存文件的方法:

>> df.shape
(1245226, 20)
Run Code Online (Sandbox Code Playgroud)

方法 1 - 获取 (1048576, 20) 而不是 (1245226, 20)

writer = pd.ExcelWriter(path)
df.to_excel(writer, index=False)
writer.close()
Run Code Online (Sandbox Code Playgroud)

方法 2 - 由于内存不足(16 GB RAM)而无法保存文件

writer = pd.ExcelWriter(path, engine='openpyxl')
df.to_excel(writer, index=False)
writer.close()
Run Code Online (Sandbox Code Playgroud)

方法 3 - 获取 (1048576, 20) 而不是 (1245226, 20)

writer = pd.ExcelWriter(path, enigne='xlsxwriter')
df.to_excel(writer, index=False)
writer.close()
Run Code Online (Sandbox Code Playgroud)

任何想法如何保存它?也许有一种方法可以将数据直接附加到excel文件中?

python excel save pandas

3
推荐指数
1
解决办法
3328
查看次数

标签 统计

excel ×2

python ×2

file ×1

pandas ×1

save ×1

xlsx ×1