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

  • Post category:Python

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

介绍

有时候我们需要处理大量的数据,而Excel是一种常见的数据存储格式。但是,Excel文件会占用大量的内存,在数据量较大的情况下可能会出现程序崩溃或运行缓慢的问题。在这种情况下,我们可以使用Python来解决这个问题。

Python中有一个非常强大的库叫做pandas,它提供了一个类似于Excel的数据结构,可以轻松地处理大量的数据。而且,pandas还提供了很多方法来读取和写入Excel文件,使得我们可以方便地在Python中操作Excel文件,并且不会因为数据量过大而出现问题。

下面将演示如何使用pandas来操作大型xlsx文件。

操作方法

1. 创建测试数据

首先,我们需要创建一个测试数据文件。我们使用Python内置的随机数生成函数来生成100万行数据,并将其存储在一个名为“test.xlsx”的文件中。

import pandas as pd
import random

# 创建一个数据框
df = pd.DataFrame({'编号': [i for i in range(1000000)],
                   '数据1': [random.randint(0, 100) for i in range(1000000)],
                   '数据2': [random.randint(0, 100) for i in range(1000000)],
                   '数据3': [random.randint(0, 100) for i in range(1000000)]})

# 存储数据框到xlsx文件中
df.to_excel('test.xlsx', sheet_name='Sheet1', index=False)

以上代码将创建一个包含100万行数据的测试文件,并将其存储在当前目录下的“test.xlsx”文件中。其中,数据包含4列:编号、数据1、数据2和数据3。

2. 读取数据文件

现在,我们需要读取这个Excel文件,并将其转换为pandas的数据框。我们可以使用pandas中的read_excel()函数来读取Excel文件,然后使用head()函数查看前几行数据:

import pandas as pd

# 读取Excel文件
df = pd.read_excel('test.xlsx', sheet_name='Sheet1')

# 查看前10行数据
print(df.head(10))

以上代码将读取“test.xlsx”文件,并将其转换为pandas的数据框。然后,我们使用head()函数来查看前10行数据,确保数据已经正确读取。

3. 写入数据文件

现在,我们可以尝试添加数据到Excel文件中。我们可以使用pandas中的to_excel()函数将数据框中的数据保存为Excel文件:

import pandas as pd

# 读取Excel文件
df = pd.read_excel('test.xlsx', sheet_name='Sheet1')

# 创建一个新的数据框
df_new = pd.DataFrame({'编号': [i for i in range(1000000, 1001000)],
                       '数据1': [5 for i in range(1000)],
                       '数据2': [6 for i in range(1000)],
                       '数据3': [7 for i in range(1000)]})

# 将新数据框添加到原数据框中
df = pd.concat([df, df_new], ignore_index=True)

# 将数据框保存到Excel文件中
df.to_excel('test.xlsx', sheet_name='Sheet1', index=False)

以上代码将读取“test.xlsx”文件,并将其转换为pandas的数据框。然后,我们创建了一个新的数据框df_new,该数据框包含1000行数据。接着,我们使用concat()函数将新的数据框添加到原数据框中。最后,我们使用to_excel()函数将更新后的数据框保存到Excel文件中。

4. 多个Excel文件合并

有时候,我们需要将多个Excel文件合并成一个大文件。pandas同样提供了很好的解决方案。

import pandas as pd
import os

# 需要合并的所有Excel文件所在的文件夹路径
folder_path = 'excel'

# 获取文件夹中所有Excel文件的文件名
file_names = os.listdir(folder_path)
file_names = [f for f in file_names if f.endswith('.xlsx')]

# 创建一个空数据框
df = pd.DataFrame()

# 读取所有Excel文件并合并到一个数据框中
for file_name in file_names:
    file_path = os.path.join(folder_path, file_name)
    df_temp = pd.read_excel(file_path)
    df = pd.concat([df, df_temp], ignore_index=True)

# 将合并后的数据框保存到一个新的Excel文件中
df.to_excel('merged.xlsx', sheet_name='Sheet1', index=False)

以上代码将合并excel文件夹中所有Excel文件的数据,并将其保存到merged.xlsx文件中。

结论

在这篇教程中,我们介绍了如何使用Python中的pandas库来操作大型xlsx文件,并演示了创建、读取和写入Excel文件的操作。此外,我们还给出了一个示例,介绍了如何合并多个Excel文件到一个大文件中。在数据量较大的情况下,Python中的pandas库是一种非常方便和高效的处理数据的方式。