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 JOINやINNER JOINなどの横方向の結合を行うには、merge()を使用します。
| オプション | 説明およびクエリ |
| how | left : 左結合 right : 右結合 inner : 内部結合 |
| on | 同じキー名が存在する場合に指定します。 |
| left_on | 1つ目のデータフレームのキーを指定します。 |
| right_on | 2つ目のデータフレームのキーを指定します。 |
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")