【PythonでExcel操作ガイド 読み書き完全マニュアル】

記事ディレクトリ

概要

Excel ファイルの読み取りと書き込みは、データ処理と分析において一般的かつ重要なタスクです。 Python は、これらの操作を簡単かつ効率的に行うためのさまざまなライブラリとメソッドを提供します。以下は、データ処理と分析において Python を使用して Excel を読み書きする一般的な方法の簡単なガイドです。

コンテンツを書く

3 つの一般的な方法:
方法 1: openpyxl ライブラリを使用する
openpyxl ライブラリをインストールする
まず、 openpyxl ライブラリがインストールされていることを確認してください。インストールされていない場合は、次のコマンドを使用してインストールできます。

pip インストール openpyxl

Excel ファイルを作成して保存する

import openpyxl

# 创建一个新的Excel工作簿
workbook = openpyxl.Workbook()

# 获取默认的工作表
sheet = workbook.active

# 写入数据
sheet['A1'] = '姓名'
sheet['B1'] = '年龄'

# 添加一行数据
sheet.append(['Alice', 25])

# 保存工作簿
workbook.save('example_openpyxl.xlsx')

ここに画像の説明を挿入します
データの読み取り、書き込み、フォーマット

import pandas as pd

# 读取Excel文件
df = pd.read_excel('example.xlsx')

# 打印数据框内容
print(df)

上記のコードは、pandas ライブラリの read_excel 関数を使用して、Excel ファイルの内容を簡単に読み取り、データを DataFrame に保存します。

セルの走査と操作は Excel ファイル処理の一般的なタスクであり、openpyxl ライブラリを使用して簡単に実行できます。セルの走査と操作のコード例をいくつか示します。
列 A の値の走査

# 假设 sheet 是你的工作表对象
for cell in sheet['A']:
    print(cell.value)

このコードは、列 A のすべてのセルをループし、その値を出力します。

セルの書式設定

# 设置单元格 A1 的字体大小为14,加粗,并添加黄色填充
sheet['A1'].font = openpyxl.styles.Font(size=14, bold=True)
sheet['A1'].fill = openpyxl.styles.PatternFill(start_color="FFFF00", end_color="FFFF00", fill_type="solid")

このコードは、セル A1 のフォント サイズと太さを設定し、黄色の塗りつぶしを追加します。
グラフを作成する

from openpyxl.chart import BarChart, Reference

# 创建柱状图
chart = BarChart()

# 设置图表数据范围
data = Reference(sheet, min_col=2, min_row=1, max_col=3, max_row=5)
categories = Reference(sheet, min_col=1, min_row=2, max_row=5)

# 添加数据到图表
chart.add_data(data, titles_from_data=True)
chart.set_categories(categories)

# 将图表添加到工作表,位置在 E5 单元格
sheet.add_chart(chart, "E5")

このコードは、openpyxl のグラフ モジュールを使用してヒストグラムを作成し、そのデータ範囲をワークシートの一部に設定し、最後にグラフをワークシートに追加します。
セルの結合と分割

# 合并 B2 到 C2 单元格
sheet.merge_cells('B2:C2')

# 设置合并后单元格的值
sheet['B2'] = 'Merged Cells'

# 拆分单元格
sheet.unmerge_cells('B2:C2')

このコードは、セル B2 から C2 を結合し、結合されたセルの値を設定してから、セルを分割します。

データをバッチで処理する

# 假设成绩数据在第二列,从第二行到最后一行
grades = [sheet.cell(row=i, column=2).value for i in range(2, sheet.max_row + 1)]

# 计算平均分
average_grade = sum(grades) / len(grades)

# 输出结果
print(f"平均分: {average_grade}")

方法 2: pandas ライブラリを使用する

import pandas as pd

# 创建一个DataFrame
data = {
    
    '姓名': ['Bob', 'Alice'], '年龄': [30, 25]}
df = pd.DataFrame(data)

# 将DataFrame写入Excel文件
df.to_excel('example_pandas.xlsx', index=False)

ここに画像の説明を挿入します

方法 3: xlwt を使用する

import xlwt

# 创建一个工作簿
workbook = xlwt.Workbook()

# 添加一个工作表
sheet = workbook.add_sheet('Sheet1')

# 写入数据
sheet.write(0, 0, '姓名')
sheet.write(0, 1, '年龄')
sheet.write(1, 0, 'Bob')
sheet.write(1, 1, 30)

# 保存工作簿
workbook.save('example_xlwt.xls')

ここに画像の説明を挿入します
または:
リスト データの書き込み

import xlwt

# 创建一个工作簿
workbook = xlwt.Workbook()

# 添加一个工作表
sheet = workbook.add_sheet('List_Data')

# 要写入的列表数据
data_list = ['Alice', 25, 'Bob', 30, 'Charlie', 35]

# 写入列表数据到Excel表格
for index, value in enumerate(data_list):
    sheet.write(index, 0, value)

# 保存工作簿
workbook.save('list_data_example.xls')

このコードは Excel テーブルを作成し、リスト内の要素を行ごとに Excel テーブルの最初の列に書き込みます。

辞書データの書き込み

import xlwt

# 创建一个工作簿
workbook = xlwt.Workbook()

# 添加一个工作表
sheet = workbook.add_sheet('Dict_Data')

# 要写入的字典数据
data_dict = {
    
    'Name': ['Alice', 'Bob', 'Charlie'],
             'Age': [25, 30, 35]}

# 写入字典数据到Excel表格
for col_num, key in enumerate(data_dict.keys()):
    sheet.write(0, col_num, key)
    for row_num, value in enumerate(data_dict[key]):
        sheet.write(row_num + 1, col_num, value)

# 保存工作簿
workbook.save('dict_data_example.xls')

このコードは Excel テーブルを作成し、辞書内のキーをヘッダーとして使用し、値を行ごとに Excel テーブルに書き込みます。

ウェアハウス データの書き込み

import xlwt
import numpy as np

# 创建一个工作簿
workbook = xlwt.Workbook()

# 添加一个工作表
sheet = workbook.add_sheet('Array_Data')

# 要写入的仓库数据
data_array = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# 写入仓库数据到Excel表格
for row_num, row_data in enumerate(data_array):
    for col_num, value in enumerate(row_data):
        # 将numpy.int32类型转换为int类型
        sheet.write(row_num, col_num, int(value))

# 保存工作簿
workbook.save('array_data_example.xls')

このコードは Excel テーブルを作成し、ウェアハウス内の要素を Excel テーブルに行ごとに書き込みます。

上記は Excel にコンテンツを書き込む一般的な 3 つの方法です。個人の習慣やプロジェクトのニーズに応じていずれかを選択してください。

読む

方法 2: openpyxl ライブラリを使用する

import openpyxl

# 打开Excel文件
workbook = openpyxl.load_workbook('example.xlsx')

# 获取默认的工作表
sheet = workbook.active

# 读取数据
for row in sheet.iter_rows(values_only=True):
    print(row)

このコードは、openpyxl ライブラリを使用して Excel ファイルを開き、ワークシートの各行を走査し、データを出力します。
方法 3: xlrd ライブラリを使用する

import xlrd

# 打开Excel文件
workbook = xlrd.open_workbook('example.xls')

# 获取默认的工作表
sheet = workbook.sheet_by_index(0)

# 读取数据
for row_num in range(sheet.nrows):
    row = sheet.row_values(row_num)
    print(row)

上記のコードは、xlrd ライブラリを使用して Excel ファイルを開き、ワークシートの各行を走査し、データを出力します。
方法 4: pyexcel ライブラリを使用する

import pyexcel

# 读取Excel文件
data = pyexcel.get_array(file_name='example.xlsx')

# 打印数据
for row in data:
    print(row)

このコードは、pyexcel ライブラリの get_array 関数を使用して Excel ファイルを読み取り、データを出力します。 pyexcel は、データを迅速に読み取ることができるシナリオに適した、シンプルで使いやすいインターフェイスを提供します。

例:
サンプル データを作成して Excel ファイルに書き込む

import pandas as pd

# 创建示例数据
data = {
    
    '姓名': ['Alice', 'Bob'], '年龄': [25, 30]}
df = pd.DataFrame(data)

# 将示例数据写入Excel文件
df.to_excel('example.xlsx', index=False)

既存の Excel ファイルを読み取り、データを追加します

import pandas as pd

# 读取已有的Excel文件
existing_data = pd.read_excel('example.xlsx')

# 添加更多的数据
new_data = {
    
    '姓名': ['Charlie', 'David'], '年龄': [28, 35]}
new_df = pd.DataFrame(new_data)

# 合并数据
combined_data = pd.concat([existing_data, new_df], ignore_index=True)

# 将合并后的数据写入Excel文件,不保存索引列
combined_data.to_excel('example_updated.xlsx', index=False)

マージされたデータを読み取り、プロットします

import matplotlib.pyplot as plt

# 读取合并后的数据
combined_data = pd.read_excel('example_updated.xlsx')

# 提取姓名和年龄列
names = combined_data['姓名']
ages = combined_data['年龄']

# 绘制曲线图
plt.plot(names, ages, marker='o', linestyle='-')
plt.title('年龄曲线图')
plt.xlabel('姓名')
plt.ylabel('年龄')
plt.grid(True)
plt.show()

ここに画像の説明を挿入します

まとめ

データの処理と分析では、Excel ファイルの読み取りと書き込みは一般的かつ重要なタスクです。 Python は、これらの操作のためのさまざまなライブラリとメソッドを提供し、データの処理を簡単かつ効率的にします。このガイドでは、pandas、openpyxl、xlrd、pyexcel、その他のライブラリの使用方法を紹介し、Excel の読み取りと書き込みの一般的なシナリオをカバーしています。

写入内容:
    使用openpyxl库创建新的Excel工作簿,添加数据,并保存。
    使用pandas库创建DataFrame,然后将其写入Excel文件。
    使用xlwt和xlrd库创建工作簿和工作表,写入数据,然后保存。

读取Excel文件:
    使用pandas库的read_excel函数读取整个Excel文件或特定工作表。
    使用openpyxl库打开Excel文件,遍历工作表的每一行,读取数据。
    使用xlrd库打开Excel文件,遍历工作表的每一行,读取数据。
    使用pyexcel库的get_array函数快速读取Excel文件。

おすすめ

転載: blog.csdn.net/weixin_47869094/article/details/134517351