私はインデックスとしてkey
を持つ2つのデータフレームdf1とdf2を持っています。インデックスごとに変動する行でpandasデータフレームを連結する
dict_1={'key':[1,1,1,2,2,3], 'col1':['a1','b1','c1','d1','e1','f1']}
df1 = pd.DataFrame(dict_1).set_index('key')
dict_2={'key':[1,1,2], 'col2':['a2','b2','c2']}
df2 = pd.DataFrame(dict_2).set_index('key')
DF1:
col1
key
1 a1
1 b1
1 c1
2 d1
2 e1
3 f1
DF2
col2
key
1 a2
1 b2
2 c2
注意各インデックスの不等行が存在すること。私はこれらの2つのデータフレームを連結して、私は以下のデータフレーム(df3と言う)を持っています。
DF3
col1 col2
key
1 a1 a2
1 b1 b2
2 d1 c2
即ち各インデックスの行(DF1およびDF2の)以上のような新しいデータフレームように2つの列を連結します。
は私が
pd.concat([df1,df2],axis=1)
を試してみましたが、私は次のエラーを取得する:
Value Error: Shape of passed values is (2,17), indices imply (2,7)
私の質問:私はdf1
とdf2
をconcatentateするにはどうすればよいdf3
を取得するには?代わりにDataFrame.merge
を使用する必要がありますか?もしそうなら、どうですか?
「小さなトリック」をありがとう。それは私が理解できなかった欠けているリンクです。私はこれを答えとして受け入れます。 – Bhushan
@Bhushan Glad私は助けることができました。 – ptrj