下面我将为您提供一个完整的Python读取Excel指定列数据并写入到新的Excel的实例教程,包含两个示例说明。
1. 安装pandas、openpyxl模块
在使用Python读取与写入Excel文件时,我们需要使用到pandas和openpyxl两个第三方模块。因此在开始之前,我们需要先安装这两个模块。
使用pip命令安装pandas和openpyxl模块:
pip install pandas
pip install openpyxl
2. 读取Excel文件中的数据
使用pandas库的read_excel()函数可以方便地读取Excel文件中的数据,并将其存储为DataFrame的数据结构。
下面给出一个示例,该示例从Excel文件中读取“Sheet1”工作表中的“A”列和“B”列数据,并将其存储到dataframe对象中:
import pandas as pd
# 读取Excel文件,并指定需要读取的工作表和列
df = pd.read_excel('input.xlsx', sheet_name='Sheet1', usecols=['A', 'B'])
# 打印读取的数据
print(df.head())
3. 将指定列数据写入到新的Excel文件中
我们使用openpyxl库来创建一个新的Excel文件,并将pandas中的DataFrame数据写入到新的Excel文件中。下面给出一个示例,该示例将pandas读取的数据写入到指定的工作表中:
import pandas as pd
from openpyxl import Workbook
from openpyxl.utils.dataframe import dataframe_to_rows
# 读取Excel文件,并指定需要读取的工作表和列
df = pd.read_excel('input.xlsx', sheet_name='Sheet1', usecols=['A', 'B'])
# 创建一个新的Excel工作簿
workbook = Workbook()
# 获取新工作簿的活动工作表(即第一个工作表)
sheet = workbook.active
# 将pandas中的DataFrame数据写入到新的Excel文件中
for r in dataframe_to_rows(df, index=True, header=True):
sheet.append(r)
# 保存Excel文件
workbook.save(filename='output.xlsx')
该示例中,我们使用了openpyxl库中的Workbook()函数来创建一个新的Excel工作簿,然后获取了新工作簿中的第一个工作表,并将pandas中的DataFrame使用dataframe_to_rows()函数转换为行迭代器,最后通过循环将该行数据写入到Excel文件中,并使用save()函数保存新的Excel文件。
4. 示例说明
现在我们来看两个实际的示例,说明如何使用Python读取Excel文件中指定的列并将其写入到新的Excel文件中。
示例一
读取Excel文件“input.xlsx”中的“Sheet1”工作表的“A”列和“B”列数据,并将其写入到新的Excel文件“output.xlsx”中“Sheet1”工作表的“C”列和“D”列中。
import pandas as pd
from openpyxl import Workbook
from openpyxl.utils.dataframe import dataframe_to_rows
# 读取Excel文件,并指定需要读取的工作表和列
df = pd.read_excel('input.xlsx', sheet_name='Sheet1', usecols=['A', 'B'])
# 创建一个新的Excel工作簿
workbook = Workbook()
# 获取新工作簿的活动工作表(即第一个工作表)
sheet = workbook.active
# 将df中的'A'列数据写入到Excel文件的'C'列中
for r in dataframe_to_rows(df['A'], index=False, header=False):
sheet['C' + str(sheet.max_row + 1)] = r[0]
# 将df中的'B'列数据写入到Excel文件的'D'列中
for r in dataframe_to_rows(df['B'], index=False, header=False):
sheet['D' + str(sheet.max_row)] = r[0]
# 保存Excel文件
workbook.save(filename='output.xlsx')
示例二
读取Excel文件“input.xlsx”中的“Sheet1”工作表的“A”列和“B”列数据,并将其合并成一个新的列,将合并后的数据写入到新的Excel文件“output.xlsx”中“Sheet1”工作表的“C”列中。
import pandas as pd
from openpyxl import Workbook
from openpyxl.utils.dataframe import dataframe_to_rows
# 读取Excel文件,并指定需要读取的工作表和列
df = pd.read_excel('input.xlsx', sheet_name='Sheet1', usecols=['A', 'B'])
# 合并'A'列和'B'列数据,生成新的一列
df['C'] = df['A'].astype(str) + df['B'].astype(str)
# 创建一个新的Excel工作簿
workbook = Workbook()
# 获取新工作簿的活动工作表(即第一个工作表)
sheet = workbook.active
# 将df中的'C'列数据写入到Excel文件的'C'列中
for r in dataframe_to_rows(df['C'], index=False, header=False):
sheet['C' + str(sheet.max_row + 1)] = r[0]
# 保存Excel文件
workbook.save(filename='output.xlsx')
以上两个示例展示了Python读取Excel指定列数据并写入到新的Excel的实现方式。通过这两个示例,我们可以学会如何使用pandas和openpyxl库来读写Excel文件的基本操作。