Python实现对excel文件列表值进行统计的方法

  • Post category:Python

下面是“Python实现对excel文件列表值进行统计的方法”的完整实例教程:

1. 准备工作

首先,我们需要安装 pandasopenpyxl 库。可以使用以下命令进行安装:

pip install pandas openpyxl

接着,我们需要先准备一个Excel文件,格式类似如下:

名字 年龄 性别
张三 18
李四 25
王五 21
小明 19
小红 20

保存为 example.xlsx 文件。

2. 读取Excel文件

首先,我们需要使用 pandas 库读取Excel文件。代码如下:

import pandas as pd

df = pd.read_excel('example.xlsx')
print(df)

这里我们使用 read_excel 函数读取Excel文件,返回一个 pandasDataFrame 对象。上面的代码会输出以下内容:

   名字  年龄 性别
0  张三  18  男
1  李四  25  男
2  王五  21  女
3  小明  19  男
4  小红  20  女

其中,第一列是名字,第二列是年龄,第三列是性别。我们可以看到,Excel文件中的数据被读取到 DataFrame 中了。

3. 统计列表值

接着,我们使用 pandas 库对读取到的数据进行统计。假设我们要统计每个性别出现的次数,可以使用如下代码:

import pandas as pd

df = pd.read_excel('example.xlsx')
counts = df['性别'].value_counts()
print(counts)

这里我们使用 value_counts 函数来统计性别列中每个值出现的次数。上面的代码会输出以下内容:

男    3
女    2
Name: 性别, dtype: int64

其中,左边的是性别值,右边的是该性别出现的次数。从输出结果可以看出,男性出现了3次,女性出现了2次。

4. 写入Excel文件

最后,我们将统计结果写入Excel文件。这里我们使用 openpyxl 库来操作Excel文件。代码如下:

import pandas as pd
from openpyxl import load_workbook

df = pd.read_excel('example.xlsx')
counts = df['性别'].value_counts()

book = load_workbook('example.xlsx')
writer = pd.ExcelWriter('example.xlsx', engine='openpyxl') 
writer.book = book

counts.to_excel(writer, sheet_name='统计结果', startrow=0, startcol=0)

writer.save()

这里我们使用 load_workbook 函数来加载Excel文件,ExcelWriter 函数来创建一个写入器,然后使用 to_excel 函数将统计结果写入Excel文件的指定工作表和位置。上面的代码会将统计结果写入 example.xlsx 文件,并保存。

5. 示例说明

下面是两个示例,分别是:

示例一

现有一个Excel表格,记录了5个人的名字、年龄、性别,如下所示:

名字 年龄 性别
张三 18
李四 25
王五 21
小明 19
小红 20

请使用Python统计该表格中男女分别出现的次数,并将结果写入Excel文件。

代码如下:

import pandas as pd
from openpyxl import load_workbook

df = pd.read_excel('example.xlsx')
counts = df['性别'].value_counts()

book = load_workbook('example.xlsx')
writer = pd.ExcelWriter('example.xlsx', engine='openpyxl') 
writer.book = book

counts.to_excel(writer, sheet_name='统计结果', startrow=0, startcol=0)

writer.save()

该代码会输出 男 3女 2,并将统计结果写入原Excel文件的一张名为“统计结果”的工作表中。

示例二

现有一个Excel表格,记录了30个人的名字、年龄、性别,如下所示:

名字 年龄 性别
张三 25
李四 23
王五 19
小明 18

请使用Python统计该表格中不同年龄段人的数量,并将结果写入Excel文件。

代码如下:

import pandas as pd
from openpyxl import load_workbook

df = pd.read_excel('example.xlsx')
ages = pd.cut(df['年龄'], [0, 20, 30, 40])
counts = ages.value_counts()

book = load_workbook('example.xlsx')
writer = pd.ExcelWriter('example.xlsx', engine='openpyxl') 
writer.book = book

counts.to_excel(writer, sheet_name='统计结果', startrow=0, startcol=0)

writer.save()

该代码会输出 (20, 30] 17,表示20岁到30岁之间的人有17个,并将统计结果写入原Excel文件的一张名为“统计结果”的工作表中。