下面是“Python实现对excel文件列表值进行统计的方法”的完整实例教程:
1. 准备工作
首先,我们需要安装 pandas
和 openpyxl
库。可以使用以下命令进行安装:
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文件,返回一个 pandas
的 DataFrame
对象。上面的代码会输出以下内容:
名字 年龄 性别
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文件的一张名为“统计结果”的工作表中。