python读取excel指定列数据并写入到新的excel方法

  • Post category:Python

下面我将为您提供一个完整的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文件的基本操作。