merge指定したカラムのみ取得したい

2020年12月21日

merge指定したカラムのみ取得したい

mergeした時に必要なカラムのみ表示したい時の方法です。
参考:Python Pandas特定の列のみをマージ

下記の通りでカラムを選択できいます。


df[['キーのカラム', 'ターゲットカラム']]

まずは普通のmergeをしてみます。


fruits = [
    {'item': 'apple', 'price': 200, 'place_id':'0101'},
    {'item': 'orange', 'price': 300, 'place_id':'0102'},
    {'item': 'banana', 'price': 150, 'place_id':'0201'}
]
places = [
    {'place_id': '0101', 'country': '日本', 'area': '北海道'},
    {'place_id': '0102', 'country': '日本', 'area': '青森'},
    {'place_id': '0201', 'country': 'アメリカ', 'area': 'マサチューセッツ'},
]
df_fruits     = pd.DataFrame(fruits)
df_places     = pd.DataFrame(places)
df = pd.merge(df_fruits, df_places)
#結果
     item  price place_id country      area
0   apple    200     0101      日本       北海道
1  orange    300     0102      日本        青森
2  banana    150     0201    アメリカ  マサチューセッツ

全てのカラムがマージされています。
例えば「フルーツ名」と「県」または「州」の情報だけ欲しい場合は下記の通りです。


...
df = pd.merge(df_fruits[["place_id", "item"]], df_places[["place_id", "area"]])
#結果
  place_id    item      area
0     0101   apple       北海道
1     0102  orange        青森
2     0201  banana  マサチューセッツ

2020年12月21日