CSVの読み込み

CSVファイルを読み込むにはread_csv()を使用します。

Python
pd.read_csv(csv_file)

ヘッダーがないCSVを読み込む

CSVファイルを読み込む際にヘッダーがない場合、header=Noneオプションを指定します。
また、読み込み時にヘッダー名を付けたい場合はnamesオプションに指定します。

Python
pd.read_csv(csv_file, header=None, names=['id', 'name', 'age'])

重複するデータを削除する

Pythonでデータフレームを扱う際に、2つの異なるデータフレームを比較して片方のデータフレームから重複しているレコードを排除したい場合があります。

その場合は以下のように記載します。

Python
df_diff = df1[~df1['column1'].isin(df2['column2'])]

どのような処理になっているか順番に見ていきます。

まず、df1['column1'].isin(df2['column2'])において、df1['column1']のそれぞれの値がdf2['column2']の中に含まれているかどうかを判定します。この結果は「マスク」となり、それぞれのレコードに対する真偽値のデータが返ります。

チルダを指定するとその否定になるので、「df1のそれぞれの値がdf2の中に含まれていない」かどうかを判定することになります。

このマスクをdf1に対して指定することで、df1においてdf2に含まれていない行だけを残すことができます。

データを縦に結合する

同じカラム構造を持つデータは縦方向に結合(ユニオン)することで一つのデータフレームに結合することができます。2つのデータフレームを結合するには、concat()を使用します。ignore_index=Trueを指定することで、インデックスの値を無視してデータのみ結合できます。

Python
df_union = pd.concat([pd1, pd2], ignore_index=True)

データを横に結合する

データベースでいうところのLEFT JOININNER JOINなどの横方向の結合を行うには、merge()を使用します。

オプション説明およびクエリ
howleft : 左結合
right : 右結合
inner : 内部結合
on同じキー名が存在する場合に指定します。
left_on1つ目のデータフレームのキーを指定します。
right_on2つ目のデータフレームのキーを指定します。
Python
pd_join = pd.merge(df1[["key","col1a","col1b"]], df2[["key", "col", "col2c"]], on="key", how="left")

データフレームの間で照合するキーが異なる場合は以下のようにします。

Python
pd_join = pd.merge(df1[["key1","col1a","col1b"]], df2[["key2", "col", "col2c"]], left_on="key1", right_on="key2", how="left")