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'])