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

下面是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日

相关文章

  • 对Python3使运行暂停的方法详解

    对Python3使用运行暂停的方法详解 在Python开发过程中,有时候我们需要使程序暂停一段时间,比如为了让用户有时间阅读输出结果,或是为了避免过于频繁地向API发送请求。本文将介绍几种Python3中实现运行暂停的方法。 使用time模块 time模块提供了一些函数来获取当前时间、生成睡眠时间,以及暂停执行脚本的时间等。这里介绍两个最常用的函数: tim…

    python 2023年6月2日
    00
  • python编写一个GUI倒计时器

    下面是Python编写一个GUI倒计时器的完整攻略: 1. 准备工作 在编写GUI倒计时器前,我们需要安装Python以及Tkinter库。Python是一种流行的高级编程语言,而Tkinter是Python自带的图形用户界面(GUI)库。 安装Python可以前往官网下载,安装过程中需要选择添加Python到系统路径;安装完成后,打开命令行(Windows…

    python 2023年5月18日
    00
  • python多线程使用方法实例详解

    Python多线程使用方法实例详解 什么是多线程 多线程是指程序中包含多个执行基本单位的并发执行,每个基本单位称为一个线程,“多线程”就是在同一个程序中运行多个线程完成不同的任务。 Python多线程使用方法 Python的多线程实现是通过threading模块来实现的,其步骤如下: 步骤1:导入threading模块 import threading 步骤…

    python 2023年6月6日
    00
  • python 文件读写操作示例源码解读

    下面我将详细讲解一下“python 文件读写操作示例源码解读”的完整攻略。 1. 文章概述 本篇文章主要介绍Python文件读写操作示例的源码解读。内容包括文件读写模式、文件对象的常用方法、文件指针的操作,以及两个相关的示例。 2. 文件读写模式 在Python中,文件读写操作需要使用open()函数,该函数有多个参数,其中一个必须参数是文件名,还有一个可选…

    python 2023年5月31日
    00
  • python 中open文件路径的选择问题解析

    在Python中,使用open函数打开文件时,需要指定文件的路径。文件路径的选择是一个重要的问题,不同的路径选择会影响程序的运行效果。本文将详细讲解Python中open文件路径的选择问题,包括两个示例。 文件路径的选择 在Python中,打开文件时,需要指定文件的路径。文件路径可以是绝对路径或相对路径。绝对路径是指文件在文件系统中的完整路径,相对路径是指文…

    python 2023年5月15日
    00
  • Python入门_学会创建并调用函数的方法

    Python是一门简单易学的编程语言,函数是Python编程中的重要概念之一。创建函数是Python编程中的基本操作之一,学会函数的创建和调用对于学习Python编程非常重要。 1. 函数的简介 函数是一段可重复使用的代码,用来实现特定的功能,并以函数名被调用。Python中的函数定义以def关键词开头,后跟函数名和括号,括号中包括形式参数列表。函数体包括在…

    python 2023年6月5日
    00
  • 字节跳动2019春招研发部分python编程题汇总

    下面我将详细讲解“字节跳动2019春招研发部分python编程题汇总”的完整攻略,过程中包含两条示例说明。 概述 “字节跳动2019春招研发部分python编程题汇总”包含15道Python编程题,难度不等,需要掌握Python基础和常见算法,具有较高的考察难度和实际工作中Python编程能力的要求。 准备工作 在开始做题前,需要准备好Python的开发环境…

    python 2023年5月13日
    00
  • Python教程之类型转换详解

    Python教程之类型转换详解 什么是类型转换? 当我们在编程过程中,有时候需要将一个数据类型转换为另外一种数据类型。例如将一个字符串类型转换为整型类型,或者将一个整型类型转换为浮点型类型等。这种操作在编程中称为类型转换。 类型转换的种类 Python中支持以下几种类型转换: 字符串转换成数字型 数字型转换成字符串 字符串、数字、元组、列表、字典之间的互相转…

    python 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部