我来详细讲解一下Python对Excel按列值筛选并拆分表格到多个文件的代码的完整实例教程。
示例说明
在本教程中,我们将以一个实例来说明如何使用Python对Excel表格按列值进行筛选并拆分成多个文件。假设我们有一张Excel表格,其中包含了两列数据:日期和销售额。现在我们需要按照日期来筛选表格,并将符合条件的行拆分成多个Excel文件。
我们的示例Excel表格如下所示:
日期 | 销售额 |
---|---|
1/1/21 | $100 |
1/2/21 | $120 |
1/2/21 | $150 |
1/3/21 | $80 |
1/3/21 | $200 |
我们需要按照日期筛选表格,并将符合条件的行拆分成多个Excel文件,例如:
- 1/1/21.xlsx:包含第一行数据
- 1/2/21.xlsx:包含第二行和第三行数据
- 1/3/21.xlsx:包含第四行和第五行数据
现在,我们开始展示如何用Python实现该功能。
步骤
- 首先,我们需要安装pandas、openpyxl和os库,这三个库可以分别使用以下命令进行安装:
pip install pandas
pip install openpyxl
pip install os
- 接着,我们需要导入这三个库,使用以下代码进行导入:
import pandas as pd
from openpyxl import Workbook
import os
- 然后,我们需要读取Excel表格,并将其转换为DataFrame格式。使用以下代码进行读取:
df = pd.read_excel('demo.xlsx', sheet_name='Sheet1')
- 接着,我们需要通过遍历把符合条件的数据进行筛选,同时分别保存在一个新的DataFrame中。使用以下代码进行筛选:
for date in df['日期'].unique():
sub_df = df[df['日期'] == date]
export_file_path = os.path.join(os.getcwd(), str(date)+'.xlsx')
sub_df.to_excel(export_file_path, index=False)
在该代码段中,我们首先使用unique()函数获取表格中的所有唯一日期,并且使用for循环来遍历这些日期。然后,使用loc函数对每一行进行筛选,只选取对应日期的所有行,将其保存在一个新的DataFrame中,最后使用to_excel函数将其保存为一个新的Excel文件。
至此,我们的Python对Excel按列值筛选并拆分表格到多个文件的代码已经完成了。完整代码和结果如下:
import pandas as pd
from openpyxl import Workbook
import os
df = pd.read_excel('demo.xlsx', sheet_name='Sheet1')
for date in df['日期'].unique():
sub_df = df[df['日期'] == date]
export_file_path = os.path.join(os.getcwd(), str(date)+'.xlsx')
sub_df.to_excel(export_file_path, index=False)
结果:
- 1/1/21.xlsx:包含第一行数据
- 1/2/21.xlsx:包含第二行和第三行数据
- 1/3/21.xlsx:包含第四行和第五行数据
示例说明
接下来,我们将再给出一个示例来说明如何使用Python对Excel表格按列值进行筛选并拆分成多个文件。假设我们有一张Excel表格,其中包含了两列数据:学校和分数。现在我们需要按照学校来筛选表格,并将符合条件的行拆分成多个Excel文件。
我们的示例Excel表格如下所示:
学校 | 分数 |
---|---|
浙大 | 90 |
浙大 | 80 |
北大 | 85 |
清华 | 95 |
北大 | 92 |
我们需要按照学校筛选表格,并将符合条件的行拆分成多个Excel文件,例如:
- 浙大.xlsx:包含第一行和第二行数据
- 北大.xlsx:包含第三行和第五行数据
- 清华.xlsx:包含第四行数据
现在,我们开始展示如何用Python实现该功能。
步骤
- 首先,我们需要安装pandas、openpyxl和os库,这三个库可以分别使用以下命令进行安装:
pip install pandas
pip install openpyxl
pip install os
- 接着,我们需要导入这三个库,使用以下代码进行导入:
import pandas as pd
from openpyxl import Workbook
import os
- 然后,我们需要读取Excel表格,并将其转换为DataFrame格式。使用以下代码进行读取:
df = pd.read_excel('demo.xlsx', sheet_name='Sheet1')
- 接着,我们需要通过遍历把符合条件的数据进行筛选,同时分别保存在一个新的DataFrame中。使用以下代码进行筛选:
for school in df['学校'].unique():
sub_df = df[df['学校'] == school]
export_file_path = os.path.join(os.getcwd(), str(school)+'.xlsx')
sub_df.to_excel(export_file_path, index=False)
在该代码段中,我们首先使用unique()函数获取表格中的所有唯一学校,并且使用for循环来遍历这些学校。然后,使用loc函数对每一行进行筛选,只选取对应学校的所有行,将其保存在一个新的DataFrame中,最后使用to_excel函数将其保存为一个新的Excel文件。
至此,我们的Python对Excel按列值筛选并拆分表格到多个文件的代码已经完成了。完整代码和结果如下:
import pandas as pd
from openpyxl import Workbook
import os
df = pd.read_excel('demo.xlsx', sheet_name='Sheet1')
for school in df['学校'].unique():
sub_df = df[df['学校'] == school]
export_file_path = os.path.join(os.getcwd(), str(school)+'.xlsx')
sub_df.to_excel(export_file_path, index=False)
结果:
- 浙大.xlsx:包含第一行和第二行数据
- 北大.xlsx:包含第三行和第五行数据
- 清华.xlsx:包含第四行数据
希望这个实例教程能够对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python对Excel按列值筛选并拆分表格到多个文件的代码 - Python技术站