pandasのチートシートです。
pandasのファイルの読み書きに関するコマンドをまとめてみました。
CSV、Excel、JSONファイルをpandasを使って読み込みます。その他htmlやsql等も読み込めますがあまり使用経験がないので書いていません。もし使用機会が増えたら追記していきます。
CSVファイルの読み書き
pd.read_csv()
pd.read_csv()
はCSVファイルを読み取る関数です。
サンプルデータは以下のようにカンマ区切りのデータを使用します。
商品,値段,グレード
りんご,100,A
みかん,150,B
メロン,400,S
スイカ,250,C
import pandas as pd
df = pd.read_csv('sample.csv')
print(df)
>>>
商品 値段 グレード
0 りんご 100 A
1 みかん 150 B
2 メロン 400 S
3 スイカ 250 C
データ解析のコンペなどはcsvファイルでデータが提供されることが多いので一番使うと思います。
よく使う引数
引数が多いのでよく使うものだけピックアップしました。
引数 | 型 | デフォルト | 概要 |
---|---|---|---|
filepath_or_buffer | strもしくはファイルパス | 省略不可 | 対象のファイルを読み込む |
header | int, もしくはintのリスト | infer | ファイルを読み始める行を指定、リストの場合はMultiIndexとなる。 |
names | 配列 | None | 列の名前を指定する |
index_col | str, int, もしくはそれらのシーケンス, False | None | インデックスとなる列を指定 |
usecols | リストもしくは呼び出し可能なもの | None | 使用する列を選択する |
df.to_csv()
df.to_csv()
はデータフレームをCSVファイルに書き込むことができます。
df.to_csv('output.csv', encoding='utf-8-sig')
日本語を使用している場合、encodingの引数を’utf-8-sig’にしないと文字化けします。’utf-8’でも大丈夫ですが、特にこだわりなければ’utf-8-sig’が無難です。
’utf-8’と’utf-8-sig’の違いについての詳細はこちらに詳しく書いてあります。
よく使う引数
こちらも引数が多いのでよく使うものだけピックアップしています。
引数 | 型 | デフォルト | |
path_or_buf | str, ファイルパス | None | DataFrame, Seriesをcsvファイルに保存する |
header | boolもしくはstrのリスト | True | ヘッダーの指定 |
index | bool | True | インデックスを入れるか否か |
index_label | strもしくはシーケンス, False | None | インデックスのラベル名 |
encoding | str | None | 文字コードの指定。日本語を使用しているなら’utf-8-sig’を推薦 |
Excelファイルの読み書き
pd.read_excel()
pd.read_excel()
はExcelファイルを読み込みます。csvとは違い、読み取るシートを指定できるのが特徴です。自宅でネットワークのスピードを測ったエクセルデータを読み込んでみました。
df = pd.read_excel('sample.xlsx', usecols=[2,4,6,7], sheet_name='ネット速度')
print(df)
>>>
日付 ネットワーク 下り(Mbps) 上り(Mbps)
0 2020/12/9 Wifi(5GHz) 86.90 110.20
1 2020/12/15 Wifi(5GHz) 85.50 105.35
2 2020/12/16 Wifi(5GHz) 71.44 83.53
よく使う引数
こちらも引数が多いのでよく使うものだけピックアップしています。
引数 | 型 | デフォルト | 概要 |
---|---|---|---|
io | str, ファイルパス, URLなど | 省略不可 | 対象のファイルを読み込む |
sheet_name | str, int, list or None | 0 | シートの名前を読み込むintの場合は左から0, 1, 2の順で読み込む |
header | int, もしくはintのリスト | infer | ファイルを読み始める行を指定、リストの場合はMultiIndexとなる。 |
names | 配列 | None | 列の名前を指定する |
index_col | str, int, もしくはそれらのシーケンス, False | None | インデックスとなる列を指定 |
usecols | リストもしくは呼び出し可能なもの | None | 使用する列を選択する |
sheet_name以外は基本的にread_csv()
と同じです。
df.to_excel()
df.to_excel()
はデータフレームをExcelファイルに書き出すことができます。
df.to_excel('output.xlsx')
なぜかわかりませんがExcelファイルに書き込みをすると勝手に罫線が引かれています。
よく使う引数
こちらも引数が多いのでよく使うものだけピックアップしています。
引数 | 型 | デフォルト | 概要 |
---|---|---|---|
excel_writer | パスライク, ファイルライクな文字列 | 省略不可 | データフレーム, シリーズをxlsxファイルに保存する |
sheet_name | 文字列 | ’Sheet1′ | シートの名前を指定する |
header | boolもしくはstrのリスト | True | ヘッダーの指定 |
index | bool | True | インデックスを入れるか否か |
index_label | strもしくはシーケンス, False | None | インデックスのラベル名 |
encoding | str | None | 文字コードの指定。日本語を使用しているなら’utf-8-sig’を推薦 |
JSONファイルの読み書き
JSONファイルは階層構造を表現できるデータ形式です。NoSQLのデータベースによく用いられます。今回は以下のように記述されている’sample.json’を扱います。
{"row 1":{"col 1":"a","col 2":"b"},"row 2":{"col 1":"c","col 2":"d"}}
pd.read_json()
pd.read_json()
は上記のようなJSONファイルを読み込みます。
df = pd.read_json('sample.json')
print(df)
>>>
row 1 row 2
col 1 a c
col 2 b d
よく使う引数
こちらも引数が多いのでよく使うものだけピックアップしています。以下のふたつくらいかなと考えています。
引数 | 型 | デフォルト | 概要 |
---|---|---|---|
path_or_buf | 文字列(ファイルパスのような) | 省略不可 | 対象のファイルを読み込む |
orient | 文字列 | None | key, valueどちらをindex, columnにするか指定する |
orient引数を使うことでkey, valueのどちらをindex, columnにするかを指定できます。
df = pd.read_json('sample.json', orient='index')
print(df)
>>>
col 1 col 2
row 1 a c
row 2 b d
リストタイプのJSONを読み込む時はorient='records'
を使ってたりもします。
df.to_json()
df.to_json()
はデータフレームをJSONファイルに書き出します。
df.to_json('sample.json')
よく使う引数
読み込みと同様以下のふたつくらいかなと考えています。
引数 | 型 | デフォルト | 概要 |
---|---|---|---|
path_or_buf | 文字列, ファイルパス, json形式のもの | 省略不可 | JSONファイルに書き込む |
orient | 文字列 | None | データの形式を選択する。 |
Seriesならorientはデフォルトで’index’, DataFrameなら’columns’になります。
’split’を選択すると辞書形式に、’records’を選択するとリスト形式で保存します。
‘split’と’records’は[ と{ が逆転している関係になります。
まとめ
データ解析にpandasを使う場合ファイルの読み書きは登竜門!
ファイルを読み込まないとデータの解析は始まりません!