熊猫 - 拆分大型excel文件

时间:2016-12-25 12:22:32

标签: python excel pandas

我有一个包含大约500,000行的excel文件,我想将其拆分为多个excel文件,每个文件有50,000行。

我想用熊猫这样做,所以它会是最快最简单的。

任何想法如何制作?

谢谢你的帮助

3 个答案:

答案 0 :(得分:6)

假设您的Excel文件只有一个(第一张)包含数据的表格,我会使用chunksize参数:

import pandas as pd
i=0
for df in pd.read_excel(file_name, chunksize=50000):
    df.to_excel('/path/to/file_{:02d}.xlsx'.format(i), index=False)
    i += 1

<强>更新

chunksize = 50000
df = pd.read_excel(file_name)
for chunk in np.split(df, len(df) // chunksize):
    chunk.to_excel('/path/to/file_{:02d}.xlsx'.format(i), index=False)

答案 1 :(得分:1)

按照此答案使用np.split_array https://stackoverflow.com/a/17315875/1394890 如果你得到

数组拆分不会导致等分

答案 2 :(得分:0)

正如MaxU所解释的,我还将使用变量chunksize并将大文件中的总行数除以所需的行数。

$cacheDir = dirname($this->getParameter('kernel.cache_dir'));

foreach (['prod', 'dev'] as $env) {
    array_map('unlink', glob("$cacheDir/$env/translations/*"));
    array_map('unlink', glob("$cacheDir/$env/app*ProjectContainer.php"));

}

希望这会对你有所帮助。