jupyter notebookを最近使い始めたので、よく使う関数まとめてみた
ちなみにpython自体、趣味で少し使う程度
pandasのインポート : import
import pandas as pd
csvインポート : read_csv()
df = pd.read_csv("hoge.csv", encoding="utf-8")
csvエクスポート : to_csv()
df.to_csv('result.csv')
統計値の一括表示 : describe()
df.describe()
行と列の入れ替え(転置) : T
df.T
特定の要素の取得 : loc(),iloc()
※ソート順ではなくindexに準拠するので注意
## 行番号と列番号の指定
# 特定の要素を取得(1行目の2列目)
df.iloc[1, 2]
# スライスも可能(1~10行目の1~10列目)
df.iloc[1:10,1:10]
## ラベルの指定
# 'index_1'の'column_a'の値を取得
df.loc['index_1', 'column_a']
# スライスも可能
df.loc['index_1':'index_3', 'column_a':'column_d']
列数,行数などのサイズ取得 : len(),shape(),size()
# 行数
len(df)
# 列数
len(df.columns)
# 両方(行と列)
df.shape
# 要素数
df.size
列の削除 : drop()
df.drop(['column_a','column_b'], axis='columns')
列(column),行(index)の名前変更 : rename()
df.rename(columns={'column_a': 'a'}, index={'index_1': 'index_0001'}, inplace=True)
欠損値のチェック(便利) : to_datetime()
df.isnull().any(axis=0)
# 欠損がある場合Trueに
# column_a False
# column_b True
# column_c True
# column_d False
欠損値の置換 : fillna()
# 全て0で埋める場合
df.fillna(0)
# 列指定で埋める場合
df.fillna({'column_b': 0})
四捨五入: fillna()
# 整数
df.round()
# 少数第3位で四捨五入
df.round(2)
時間型の変換 : to_datetime()
変換しておくと何かと便利
pd.to_datetime(df['datetime'])
DataFrameのソート : sort_values()
df.sort_values(['date', 'id'], ascending=[False, True], inplace=True)
DataFrameのindex振り直し : reset_index()
# dropを指定しない場合、新たな列にindexが追加される
df.sort_values(['date', 'id'], ascending=[False, True]).reset_index(inplace=True, drop=True)
合計値・平均・標準計算 : sum(), mean(), std()
# 列ごと
df.sum()
# 行ごと
df.sum(axis=1)
# 合計:sum()
# 平均:mean()
# 標準偏差:std()
条件抽出 : where()
# 抽出
df.where(df['date'] >= '2018-07-18')
# 抽出すると条件外の行は全てNaNになるので、削除する場合
df.where(df['date'] >= '2018-07-18').dropna(how='all')
DataFrameの結合 : merge()
pd.merge(df_a, df_b, on='id', how='inner')
# 内部結合(inner_join): how='inner'
# 左結合(left_join): how='left'
# 右結合(right_join): how='right'
# 外部結合(outer_join): how='outer'
ランキング : rank()
df.rank(method='dense', ascending=False)['column_a']
ざっとまとめてみました。
その他、ループやgroup,カウントなど便利なものがまだまだあるので後日。