Python这样操作能存储100多万行的xlsx文件

yizhihongxing

下面是Python操作存储100多万行xlsx文件的完整实例教程。

环境要求

  • Python3.x
  • pandas库

实现步骤

  1. 读取数据

使用pandas库的read_excel方法读取xlsx文件,将数据存储到DataFame中,例如:

import pandas as pd

df = pd.read_excel('data.xlsx')
  1. 拆分数据

我们将数据拆分成多个小的Excel文件,每个Excel文件存储一部分数据。例如,我们可以将原始的数据按行数拆成每个文件1000行的小数据集。

chunk_size = 1000
chunks = [df[i:i+chunk_size] for i in range(0,len(df),chunk_size)]

# 写数据到文件中
for i, chunk in enumerate(chunks):
    file_name = f"data_{i}.xlsx"
    chunk.to_excel(file_name, index=False)
  1. 合并数据

将拆分后的小Excel文件合并成一个大文件,我们可以使用pandas库的concat方法将多个DataFame合并成一个DataFame。

files = ['data_0.xlsx', 'data_1.xlsx', 'data_2.xlsx']
data_frames = []
for file in files:
    data_frames.append(pd.read_excel(file))

df = pd.concat(data_frames, ignore_index=True)
  1. 结果验证

验证合并后的数据与原始数据是否一致,可以比较两个DataFrame的shape和head数据。

# 检查数据的shape是否相等
print("Data frame shape: ", df.shape)
print("Original data shape: ", original_data.shape)

# 检查head是否相等
print("Data frame head(5):\n", df.head())
print("Original data head(5):\n", original_data.head())

示例说明

以下是两个示例,展示了如何通过上述步骤存储大量数据到Excel文件中。

示例1:堆叠数据集

我们有时需要将多个数据集(例如来自多个Excel文件)堆叠在一起,以方便对它们进行分析。以下是一个示例,演示如何通过分割和合并数据集来堆叠多个Excel文件中的数据。

import pandas as pd

# read excel sheets into list of DataFrame
sheets = pd.read_excel("path/to/large_file.xlsx", sheet_name=None)
dfs = [df for _, df in sheets.items()]

# split into many excel files
chunk_size = 100000
for i, chunk in enumerate(dfs[0].groupby(np.arange(len(dfs[0])) // chunk_size)):
    chunk = chunk[1]
    file_name = f"path/to/output/file_{i}.xlsx"
    chunk.to_excel(file_name, index=None)

# concatenate dataframes from many files
data_frames = []
for i in range(10):
   file_name = f"path/to/output/file_{i}.xlsx"
   data_frames.append(pd.read_excel(file_name, index_col=None, header=None))

df = pd.concat(data_frames, axis=0, ignore_index=True)

示例2:合并多个Excel文件

我们可以拆分存储大量数据的单个Excel文件,并将其存储在多个文件中,最后再合并这些文件来恢复原始Excel文件。以下是一个示例,演示如何用Python拆分和合并大的Excel文件。

import pandas as pd

dfs = pd.read_excel("path/to/large_file.xlsx", sheet_name=None)

chunks = [df for _,df in dfs.items()]
chunk_size = 500000
num_chunks = len(chunks)
for i,chunk in enumerate(chunks):
    start = i * chunk_size
    finish = start + chunk_size
    sub_chunk_num = i // num_chunks
    sub_chunk_filename = f"path/to/output/file_{sub_chunk_num}.xlsx
    sub_chunk = chunk[start:finish]
    sub_chunk.to_excel(sub_chunk_filename,index=None)

all_files = glob.glob("path/to/output/*.xlsx")
data_frames = []
for file in all_files:
    df = pd.read_excel(file, index_col=None, header=None)
    data_frames.append(df)

output_file = "path/to/output/large_file.xlsx"
pd.concat(data_frames, axis=0, ignore_index=True).to_excel(output_file)

总结

通过拆分成小的Excel文件和合并这些文件,我们可以轻松地存储和管理大量数据。同时还可以使用pandas的方法来处理这些数据,比如堆叠、合并等。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python这样操作能存储100多万行的xlsx文件 - Python技术站

(0)
上一篇 2023年5月13日
下一篇 2023年5月13日

相关文章

  • 使用python实现kmean算法

    K均值聚类算法是一种常用的无监督学习算法,它可以将数据集分成K个簇,每个簇包含最接近其质心的数据点。在本文中,我们将介绍如何使用Python实现K均值聚类算法。 步骤1:导入必要的库 在实现K均值聚类算法之前,我们需要导入必要的库。在这个例子中,我们将使用numpy和matplotlib库。numpy库用于处理数值计算,matplotlib库用于绘制图表。我…

    python 2023年5月14日
    00
  • Python中的pathlib库使用详解

    下面是 Python 中的 pathlib 库使用详解: 1. 引言 Python 中的 pathlib 库是一个处理文件路径的库。它提供了一种面向对象的方式来处理文件路径和文件系统操作。在使用 Python 操作文件时,使用 pathlib 可以简化代码、提高可读性和可维护性。 2. 安装 pathlib 是 Python 3.4 及其后续版本的一部分,因…

    python 2023年5月13日
    00
  • 使用python实现回文数的四种方法小结

    以下是关于“使用Python实现回文数的四种方法小结”的完整攻略: 简介 回文数是指正反读都相同的数字,例如121和1221。在Python中,有多种方法可以判断一个数字是否为回文数。本教程将介绍四种使用Python实现回文数的方法,并讨论每种方法的优缺点。 方法一:字符串反转 第一种方法是将数字转换为字符串,然后将字符串反转并与原始字符串进行比较。可以使用…

    python 2023年5月14日
    00
  • 如何在Excel中一次对多个工作表应用数据验证

    以下是“如何在Excel中一次对多个工作表应用数据验证”的完整攻略,包含两个示例说明。 如何在Excel中一次对多个工作表应用数据验证 在Excel中可以使用数据验证来限制单元格中输入的数据类型和格式。如果需要在多个工作表中应用相同的数据验证规则,可以使用以下方法: 步骤一:选择要应用数据验证的工作表 首先需要选择要应用数据验证的工作表。 步骤二:选择要应用…

    云计算 2023年5月10日
    00
  • Python数据结构之树的全面解读

    Python数据结构之树的全面解读 什么是树? 树是一种重要的数据结构,它以分层的方式存储数据,根据结点之间的层次关系,被称作父结点、子结点以及兄弟结点。 树的组成部分 一棵树由一个根结点、若干个子树以及它们构成的森林组成。树具有以下属性:- 每个结点都有唯一的一个父结点(除了根结点)- 每个结点可以有多个子结点- 没有环路(即,一个结点不能成为它自己的祖先…

    python 2023年5月14日
    00
  • 学会python自动收发邮件 代替你问候女友

    当然可以,以下是详细的攻略: 学会python自动收发邮件 代替你问候女友 准备工作 在开始这个过程之前,你需要确保你的电脑上安装了Python解释器和SMTP库。SMTP库是Python自带的库,可以用于发送邮件。 收取邮件 首先,我们需要从邮箱中获取最新的邮件,并对其进行处理。以下是一个例子: import imaplib import email ma…

    python 2023年5月19日
    00
  • python实现ID3决策树算法

    下面是详细讲解“Python实现ID3决策树算法”的完整攻略,包括算法原理、Python实现和两个示例。 算法原理 ID3决树算法是一种基于信息的决策算法,其主要思想是通过计算每个特征的信息增益,选择信息增益大的特征作为当前节点划分特征,然后递归地构建决策树。具体实现时,需要计算每个特征的信息熵和条件熵,以信息增益,然后选择信息增益最大的特征进行划分。 Py…

    python 2023年5月14日
    00
  • 解决链式 Python 拼图:

    【问题标题】:Solving a Chain Link Python Puzzle:解决链式 Python 拼图: 【发布时间】:2023-04-07 00:17:01 【问题描述】: 我不确定从以下 python 谜题开始。 “你持有一个链的链接。实现一个方法longerSide来查找链的哪一侧有更多的链接,相对于你持有的链接。如果左侧有更多的链接返回Si…

    Python开发 2023年4月7日
    00
合作推广
合作推广
分享本页
返回顶部