【Pandas】CSV/Excelファイルの読み込み、書き込み(保存)

Python用データ分析モジュール「Pandas」でデータフレームをCSVファイル形式で読み込む方法をソースコード付きで解説します。

データフレームの読込(CSVファイル形式)

Pandasでは、read_csvメソッドを用いることで、データフレームをCSVファイル形式で読み込むことができます。

書式

pandas.read_csv(filepath_or_buffer, sep=', ', delimiter=None, header='infer', names=None, index_col=None, usecols=None, squeeze=False, prefix=None, mangle_dupe_cols=True, dtype=None, engine=None, converters=None, true_values=None, false_values=None, skipinitialspace=False, skiprows=None, skipfooter=None, nrows=None, na_values=None, keep_default_na=True, na_filter=True, verbose=False, skip_blank_lines=True, parse_dates=False, infer_datetime_format=False, keep_date_col=False, date_parser=None, dayfirst=False, iterator=False, chunksize=None, compression='infer', thousands=None, decimal='.', ineterminator=None, quotechar='"', quoting=0, escapechar=None, comment=None, encoding=None, dialect=None, tupleize_cols=False, error_bad_lines=True, warn_bad_lines=True, skip_footer=0, doublequote=True, delim_whitespace=False, as_recarray=False, compact_ints=False, use_unsigned=False, low_memory=True, buffer_lines=None, memory_map=False, float_precision=None)

【ドキュメント】http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html

引数 内容
filepath_or_buffer 読み込むCSVファイルのパス
sep 区切り文字
delimiter sep の代わりに区切り文字を指定
header ラベル(ヘッダ行)の行数
names ヘッダ行をリストで指定
index_col インデックスとして扱う列番号
dtype 各行のデータタイプ
skiprows 先頭から読み込みをスキップする行数
skipfooter 末尾から読み込みをスキップする行数
nrows 読み込む行数
quotechar ダブルクォーテーションなどでクオートされている場合のクオート文字
escapechar エスケープされている場合のエスケープ文字
comment コメント行の行頭文字を指定(指定した文字で始まる行は無視)
index 行名も保存するか否か
encoding 文字コード(’utf-8′, ‘shift_jis’, ‘euc_jp)

サンプルプログラムのソースコードは下記の通りです。


表示されない場合は、「https://github.com/nishizumi-lab/sample/blob/master/python/pandas/file/read_csv.py」をご覧ください。

■data2.csv
https://github.com/nishizumi-lab/sample/blob/master/python/pandas/csv/data2.csv

データフレームの保存(CSVファイル形式)

Pandasでは、to_csvメソッドを用いることで、データフレームをCSVファイル形式で保存できます。

書式

DataFrameObj.to_csv(path_or_buf=None, sep=', ', na_rep='', float_format=None, columns=None, header=True, index=True, index_label=None, mode='w', encoding=None, compression=None, quoting=None, quotechar='"', line_terminator='\n', chunksize=None, tupleize_cols=False, date_format=None, doublequote=True, escapechar=None, decimal='.')
引数 内容
path_or_buf 保存するCSVファイル名
sep 区切り文字
index 行名も保存するか否か
encoding 文字コード(’utf-8′, ‘shift_jis’, ‘euc_jp)

サンプルプログラムのソースコードは下記の通りです。

# -*- coding: utf-8 -*-
import pandas as pd

# データフレームの初期化
df = pd.DataFrame({
    '名前' : ['西住みほ', '秋山優花里', '武部沙織', '五十鈴華', '冷泉麻子'],
    '身長' : [158, 157, 157, 163, 145]},
    index = ['車長', '装填手', '通信手', '砲手', '操縦手']
)

# ファイル出力
df.to_csv("anko.csv")

サンプルプログラムの実行結果です。
【生成したanko.csv】

,名前,身長
車長,西住みほ,158
装填手,秋山優花里,157
通信手,武部沙織,157
砲手,五十鈴華,163
操縦手,冷泉麻子,145
【Pandas】データフレームの保存(CSVファイル形式)
Python用データ分析モジュール「Pandas」でデータフレームをCSVファイル形式で保存する方法をソースコード付きで解説します。

Excelファイルの書き込み

Python + Pandasでは、to_excelメソッドで簡単にExcelファイルを書き込めます。

サンプルプログラムのソースコードです。

# -*- coding: utf-8 -*-
import pandas as pd

# データフレームの初期化
df = pd.DataFrame({
    '名前' : ['西住みほ', '秋山優花里', '武部沙織'],
    '身長' : [158, 157, 157]},
    index = ['車長', '装填手', '通信手']
)

# データフレームをExcelファイルに書き込む
df.to_excel("test.xlsx")
【Pandas】Excelファイルの書き込み(出力)
Python(Pandas)でExcelファイルを書き込む方法とサンプルコードを入門者向けにまとめました。

Excelファイルのグラフ化

Pythonモジュール「Pandas」で読み込んだExcelのデータを「Matplotlib」でグラフ化してみました。

サンプルプログラムのソースコードです。

# -*- coding: utf-8 -*-
import pandas as pd
import matplotlib.pyplot as plt

def main():
    # Excelファイルの読み込んでデータフレームに格納
    df = pd.read_excel("input.xlsx")

    # ラベル毎の値を取り出し
    numbers = df['受験番号'].values
    maths = df['数学'].values
    englishs = df['英語'].values

    # グラフ化
    plt.plot(numbers, maths)
    plt.plot(numbers, englishs)
    plt.grid()
    plt.show()

if __name__ == "__main__":
    main()

サンプルプログラムの実行結果です。

■読み込んだExcelファイルの中身

■グラフ

【Python/Pandas】Excelファイルのグラフ化
Pythonモジュール「Pandas」で読み込んだExcelのデータを「Matplotlib」でグラフ化する方法をソースコード付きで解説します。
【Pandas入門】使い方とサンプル集
Pythonモジュール「Pandas」でデータ分析する方法についてサンプルコード付きで入門者向けに解説します。

コメント