データフレームA
列1 | 列2 | 列3 |
---|---|---|
1 | a | b |
2 | b | b |
3 | c | b |
データフレームB
列1 | 列2 |
---|---|
1 | b |
2 | b |
上記のようなデータフレームが二つあったとして、それぞれの列1をKeyにして結合するにはどうしたら良いですか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
ベストアンサー
A, B が同じ列名 "列1" を持ち、その列をキーにして結合したい場合は以下のようにすればできます。
結合の仕方は4種類あるので、how 引数で好みの結合方法に変更してください。
Pandasで2つのデータを横方向に結合するmerge関数の使い方 - DeepAge
csv
1列1,列2,列3 21,a,b 32,b,b 43,c,b
test1.csv
csv
1列1,列2 21,b 32,b
test2.csv
python
1import pandas as pd 2 3A = pd.read_csv("test1.csv") 4B = pd.read_csv("test2.csv") 5 6merged = pd.merge(A, B, on=["列1"]) 7print(merged) 8# 列1 列2_x 列3 列2_y 9# 0 1 a b b 10# 1 2 b b b 11 12# 列2 は A, B 両方にあるので、A にあった列2は 列2_x、B にあった列2は 列2_y にリネームされる。
投稿2019/07/30 08:38
編集2019/07/30 08:39総合スコア21956
0
join の仕方が指定されていないので、いくつかの方法で確認するコードをはっておきます。
python
1import pandas as pd 2 3df_a = pd.DataFrame([[1,'a','b'],[2,'b','b'],[3,'c','b']]) 4df_b = pd.DataFrame([[1,'b'],[2,'b']]) 5 6print(df_a) 7print(df_b) 8 9methods = ['inner', 'left', 'right', 'outer'] 10 11for m in methods: 12 print('join with ' + m) 13 print(pd.merge(df_a, df_b, how=m, on=0, suffixes=['_a', '_b'])) 14
投稿2019/07/30 08:41
総合スコア90
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。