【Python初心者向け】PandasでDataFrameの作成とCSV読み込み方法の解説

今回はPythonのPandasというライブラリでDataFrameを作成する方法とCSVからDataFrameに読み込む方法を解説していきたいと思います。

DataFrame(データフレーム)とは

DataFrameとはPandasのライブラリが提供する、Excelやデータベースといった表形式のデータをプログラム上で操作することができるようなデータ構造のことです。

下の画像のようなものをオブジェクトとして持っていると思ってもらえればいったんOKです。

../_images/01_table_dataframe.svg

実際にプログラムで書いてみると意外と直感的に操作することができると思います。

DataFrameの作成

早速DataFrameを作成してみましょう。まずは下記のように書いてDataFrameを作成し中身を確認してみてください。

import pandas as pd
users = pd.DataFrame({
    'name': ['Tanaka', 'Yamada', 'Suzuki', 'Sato'],
    'sex': ['Male', 'Female', 'Female', 'Male'],
    'age': [30, 18, 50, 40]
})
users
name sex age
0 Tanaka Male 30
1 Yamada Female 18
2 Suzuki Female 50
3 Sato Male 40
解説
  • 1行目でPandasをインポートします。公式ではエイリアスをpdとすることが推奨されているようです。(別名でも問題はないです)
  • 2行目でusersというDataFrameを作成しています。DataFrame関数の中にname, sex, ageのキーと値を持った辞書を入れています。
  • 作成したDataFrameの中身を確認すると馴染みのある表形式のデータが確認できます。辞書のキーが列名になっていて、1列目がインデックス(行番号)となっています。

Seriesについて

PandasはDataFrameの他にSeriesというものがあり、これは1次元のベクトルのことを表しています。「え、難しそう」と思った方もいるかと思いますが、簡単です。先ほど作成したDataFrameの各列のことがSeriesとなっています。なので、DataFrameはある意味、Seriesの集合体だと思ってもらえればいいかと思います。

DataFrameからSeriesを選択するには下記のようにします。

users['name']
0 Tanaka
1 Yamada
2 Suzuki
3 Sato
Name: name, dtype: object
解説
  • usersのDataFrameに対して列名「name」を指定すると、nameのSeriesが取得できる

CSVファイルの読み込み

次はPandasでCSVを読み込む方法について解説していきます。

先ほどのusersテーブルのようなデータを準備しましたので、こちらからダウンロードしておいてください。

PandasでCSVのデータを読み込むにはread_csvという関数を使えば簡単に読み込むことができます。

users = pd.read_csv('users.csv')users.head(5)
name age sex birthday
0 沖野 58 1962/6/13
1 木野 47 1973/2/27
2 柳瀬 52 1968/8/28
3 小野田 11 2009/6/17
4 小松 25 1995/6/14
解説
  • 今回のCSVデータは100行あるため、2行目でhead()関数を使い、上から5行目までを表示しています。

CSVの読み込みは結構簡単ですよね。ちなみにExcelからデータを読み込むのも簡単で下記のようにすればできます。

users = pd.read_excel('users.xlsx', sheet_name='users')

第一引数でファイル名を選択し、第二引数で読み込みたいシートを指定することで簡単に読み込めます。

その他のデータ読み込み方法

今回はCSVとExcelファイルの読み込み方法について解説しましたが、他にも様々なファイルの読み込みにPandasは対応しています。

Type 説明 読み込み関数 書き込み関数
text CSV read_csv to_csv
text Fixed-Width File read_fwf
text JSON read_json to_json
text HTML read_html to_html
text クリップボード read_clipboard to_clipboard
MS Excel read_excel to_excel
binary OpenDocument read_excel
binary HDF5 Format read_hdf to_hdf
binary Feather Format read_feather to_feather
binary Parquet Format read_parquet to_parquet
binary ORC Format read_orc
binary Msgpack read_msgpack to_msgpack
binary Stata read_stata to_stata
binary SAS read_sas
binary SPSS read_spss
binary Python Pickle Format read_pickle to_pickle
SQL SQL read_sql to_sql
SQL Google BigQuery read_gbq to_gbq

主要な読み込み形式については今後チートシートを作成しますのでお待ちください。

まとめ

 

  • 辞書からDataFrameを作成することができる
  • DataFrameの各列のことをSeriesという
  • CSVファイルを読み込むにはread_csv関数を使う。Excelファイルの場合はread_excelを使う