pandasの基本
概要
pandasはテーブルデータの分析をする上で非常に便利なモジュール。テーブルデータの可視化もjupyter-notebookと合わせて非常に見やすくなる。自分がよく使うものを並べていきます。
環境
macOS Mojave 10.14.5
インストール
pythonのデフォルトモジュールではないのでインストールが必要。pipかcondaでインストールする。
クイックスタート
import pandas as pd df = pd.read_csv('data.csv', header=None) df.head()
データの基本情報
- size :
df.shape - index :
df.index - column :
df.columns - type :
df.dtypes - unique :
df['A'].value_counts() - statical info :
df.describe()
ユニークな要素
- ユニークな要素を取得 :
unique()
df['A'].unique() ==> ['a', 'aa', 'aaa']
- ユニークな要素の種類の合計値を取得 :
unique()
df['A'].nunique() ==> 3
- ユニークな要素とその要素の数を取得 :
value_counts()
df['A'].value_counts() ==> a 1 aa 1 aaa 2
抽出
- ラベルを指定 :
locを使う
df.loc[['01', '03'], ['A', 'B']] df.loc[:, ['A', 'B']]
- 番号を指定 :
ilocを使う
df.iloc[[0, 1], [3, 4]] df.iloc[[0, 1], :]
- ラベルと番号 :
ixを使えばできるが、公式ではおすすめされていない。
df.ix[['01', '03'], [0, 1]]
要素の文字列に対する条件で抽出
.strを使う
df[df['A'].str.contains('aaa') == True] #文字列にaaaを含む df[df['A'].str.len() == 3] #文字列が3つ
要素をif文で抽出
np.where(df['A'] == 'a', True, False)
ソート
要素でソート
df = df.sort_values('A')
- 複数の要素 : リストで指定
- 昇順降順 :
ascending - 欠損値
Nanの場所 :na_positon - 元のオブジェクトを変更 :
inplace
df.sort_values(['A', 'B'], ascending=[False, True], na_position='first', inplace=True )
行名でソート
df = df.sort_index()
昇順降順、元のオブジェクトの変更は要素のときと同じ。列名でソートする時はaxis=1とするとできる。
便利機能
ダミー行列の作成
get_dummiesを使う
df_dummies = pd.get_dummies(df['A'])