[Python]pandas覚えたての人によるチートシート

2020年1月31日

はじめに

pandas、いいですね。

基本的な集計はこれですべて事足りるのではないかと思うほどです。
SpreadsheetやMySQLになまじ慣れてしまっており、本腰入れて勉強していなかった過去を反省しています。

とはいえ使い方は割と慣れが必要で、細かな作法を覚えていないと詰まってしまうので、個人的によく使うメソッドをメモっていきたいと思います。

随時更新していく予定です。

基本編

ファイル読み込み

csv読み込み

df = pd.read_csv('data.csv')

tsv読み込み(タブ区切り)

df = pd.read_csv('data.tsv', sep='\t')

tsv読み込み(ヘッダーなしの場合)

df = pd.read_csv('data.tsv', sep='\t', header=None)

tsv読み込み(ヘッダーなしのファイルを読み込み、カラムを指定する)

df = pd.read_csv('data.tsv', sep='\t', header=None, names=('col1', 'col2'))

ファイル書き出し

csv書き出し

df.to_csv('result.csv')

tsv書き出し(タブ区切り)

df.to_csv('result.csv', sep='\t')

tsv書き出し(インデックスなし)

df.to_csv('result.csv', sep='\t', index=False)

データ取得

条件付きで行取得

selected_rows = df.loc[df['col1']=='apple']

結合

df2 = pd.read_csv('table2.tsv', sep='\t')

LEFT JOIN

join = pd.merge(df, df2, left_on='Col1', right_on='code', how='left')

INNER JOIN

inner_join = pd.merge(df, df2, left_on='Col1', right_on='code', how='inner')

置換

NaNの値を確認

join.isna().sum()

NaNの値に任意の値を置換

※NaNの値を0で置換

fillna_join = join.fillna(0)

まとめ

pandasすごく便利な子です!