ExcelファイルをPythonで読み込むサンプルコード

田中太郎
田中太郎

Excelの表を,pythonで使いやすい形で読み込む
サンプルコード(5種類)を紹介します!

  • 環境     :Python3.7
  • 使用モジュール:pandas

サンプルコード

行ヘッダと列ヘッダがある場合

行ヘッダと列ヘッダのあるエクセルファイルを入力すると,Pythonの辞書が出力されます.

入力
ABC
1列1列2
2行1
3行2

注:(1, A)に文字を入れると挙動がおかしくなります.

出力
{'行1': {'列1': '田', '列2': '中'}, '行2': {'列1': '太', '列2': '郎'}}
コード
import pandas as pd


def create_line_and_column_header_dict(input_excel):
    """Exists line and column header.
    Excel table -> {line_header:{column_header:value,...},...}
    """
    df = pd.read_excel(input_excel, index_col=0)
    df = df.fillna("NA")
    result = df.to_dict(orient="index")
    return result


print(create_line_and_column_header_dict("input.xlsx"))

行ヘッダのみがある場合

行ヘッダのあるエクセルファイルを入力すると,Pythonの辞書が出力されます.

入力
ABC
1行1
2行2
出力
{'行1': ['田', '中'], '行2': ['太', '郎']}
コード
import pandas as pd

def create_line_header_dict(input_excel):
    """Exists line header.
    Excel table -> {line_header:[value,...],...}
    """
    df = pd.read_excel(input_excel, header=None, index_col=0)
    df = df.fillna("NA")
    df = df.T
    result = df.to_dict(orient="list")
    return result


print(create_line_header_dict("input.xlsx"))

列ヘッダのみがある場合

列ヘッダのあるエクセルファイルを入力すると,Pythonの辞書が出力されます.

入力
AB
1列1列2
2
3
出力
{'列1': ['田', '中'], '列2': ['太', '郎']}
コード
import pandas as pd

def create_column_header_dict(input_excel):
    """Exists column header.
    Excel table -> {column_header:[value,...],...}
    """
    df = pd.read_excel(input_excel)
    df = df.fillna("NA")
    result = df.to_dict(orient="list")
    return result


print(create_column_header_dict("input.xlsx"))

行毎にリストとして読み込む場合

エクセルファイルを1行づつ読み込んでリストにします.

入力
AB
1
2
出力
[['田', '中'], ['太', '郎']]
コード
import pandas as pd


def create_line_list(input_excel):
    """Every 1 line.
    Excel table -> [[value,...],[...],...]
    """
    df = pd.read_excel(input_excel, header=None)
    df = df.fillna("NA")
    df = df.T
    data_dict = df.to_dict(orient="list")
    lines = list(data_dict.values())
    return lines


print(create_line_list("input.xlsx"))

列毎にリストとして読み込む場合

エクセルファイルを1列づつ読み込んでリストにします.

入力
AB
1
2
出力
[['田', '中'], ['太', '郎']]
コード
import pandas as pd


def create_column_list(input_excel):
    """Every 1 column.
    Excel table -> [[value,...],[...],...]
    """
    df = pd.read_excel(input_excel, header=None)
    df = df.fillna("NA")
    data_dict = df.to_dict(orient="list")
    lines = list(data_dict.values())
    return lines


print(create_column_list("input.xlsx"))

コメント

タイトルとURLをコピーしました