
田中太郎
Excelの表を,pythonで使いやすい形で読み込む
サンプルコード(5種類)を紹介します!
- 環境 :Python3.7
- 使用モジュール:pandas
サンプルコード
行ヘッダと列ヘッダがある場合
行ヘッダと列ヘッダのあるエクセルファイルを入力すると,Pythonの辞書が出力されます.
入力
A | B | C | |
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の辞書が出力されます.
入力
A | B | C | |
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の辞書が出力されます.
入力
A | B | |
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行づつ読み込んでリストにします.
入力
A | B | |
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列づつ読み込んでリストにします.
入力
A | B | |
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"))
コメント