pandasによるデータ処理メモ
pandasに関する情報ページはわりと豊富なので、主にリンクのまとめです。
実行環境
実行環境は、Jupyter(IPython) Notebook を使うのが良いと思います。
Windowsにpython3とJupyter Notebook(旧: ipython notebook)をインストールする - Qiita
pandasのインストールとインポート
$ pip install pandas
import pandas as pd
DataFrameの作成
データの新規作成
pd.DataFrame
で DataFrame の作成ができる。注意点として、各列ごとのデータ数は一致している必要がある。
df = pd.DataFrame({
'A' : [1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5, 6, 6, 7, 8, 9, 10],
'B' : [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 6, 7, 7, 8, 8, 8, 8, 8, 8]
})
既存データの読み込み
CSV, TSV を開く
# CSV
csv_data = pd.read_csv('./path/to/hoge.csv')
# TSV
tsv_data = pd.read_csv('./path/to/hoge.csv', delimiter='\t')
pandasでcsv/tsvファイルの読み書き | mwSoft
pandasでカラムサイズが一定でないcsv/tsvを読み込む : mwSoft blog
Pythonコーディング備忘録 ~その3~(pandasのread_csvを使いこなす) - 自調自考の旅
データを抽出する
Python pandas データ選択処理をちょっと詳しく <前編> - StatsFragments
Python pandas データ選択処理をちょっと詳しく <中編> - StatsFragments
Python pandas データ選択処理をちょっと詳しく <後編> - StatsFragments
Pandasでデータフレームを条件指定で参照する - Qiita
列(column)抽出
ラベル名から抽出カラムの指定
data = data[['column1', 'column2']]
行(row)抽出
条件を指定して抽出
data = data[data.column1 == 'hoge']
正規表現での検索による抽出
data = data[data.column1.str.contains(regex)]
Python pandas:正規表現を使いDataFrameを検索 - Qiita
データフレーム文字列検索 - ねこゆきのメモ
欠測値(NaN)の除去
df = df.dropna()
df = df.dropna(subset=['項目1', '項目2'])
DataFrameの結合
Python pandas 図でみる データ連結 / 結合処理 - StatsFragments
Merge, join, and concatenate — pandas 0.18.1 documentation
DataFrameの加工
データのソート
数値でのソート
# 1種類の場合
df = df.sort_values(['データ種別'])
# 1 -> 2の順で昇順にソート
df = df.sort_values(['データ種別1', 'データ種別2'])
pandas.DataFrame.sort_values — pandas 0.18.1 documentation
pandas でソート - Qiita
行/列名の変更
df.rename(columns={'A': 'a'}, index={'ONE': 'one'}, inplace=True)
pandas.DataFrame.rename — pandas 0.18.1 documentation
pandas DataFrameの行名・列名の変更 | nkmk log
現在のデータ順でindexの振り直し
df = df.reset_index(drop=True)
python - How to reset index in a pandas data frame? - Stack Overflow
pandas.DataFrame.reset_index — pandas 0.18.1 documentation
データの型の変更
df = df.astype(float)
行列の反転
df = df.T
DataFrameから別形式への変換
DataFrame から List への変換
df.values.tolist()
python - Pandas DataFrame to list - Stack Overflow
CSV, TSV での書き出し
# CSV
data.to_csv('./path/to/output.csv')
# TSV
data.to_csv('./path/to/output.csv', sep='\t')
pandasでcsv/tsvファイルの読み書き | mwSoft
pandas <=> DB 間連携
Microsoft Access (mdb)
[Linux][Python][Pandas] Microsoft Accessのデータベース(*.mdb)をPandasで読み込む - Qiita
データプロット/グラフ出力
pandas での plot
の基本仕様
pandasは matplotlib
を薄くラップしています。ある程度のグラフまでは pandas の plot
で出力可能です。
pandasでのグラフの出力方法の基本については以下などを参照してください。
Visualization — pandas 0.18.1 documentation
pandas の plot
をもう少し操作
Python pandas プロット機能を使いこなす - StatsFragments
PythonでPandasのPlot機能を使えばデータ加工からグラフ作成までマジでシームレス - Qiita
欠損値/外れ値/離散化の処理
Python pandas 欠損値/外れ値/離散化の処理 - StatsFragments
パフォーマンスについて
Python pandas パフォーマンス維持のための 3 つの TIPS - StatsFragments
書籍
pandasの作者による解説本
O'Reilly Japan - Pythonによるデータ分析入門