2017-06-20 4 views
1

最終結果Pandas Data Frameは、このようになります。2列の結合を使用すると、4つの他のデータフレームから1つのパンダデータフレームに列を取り込みます

 aggregate_FID jurisdiction FID  name   rate 
2217 750    municipal  405  Auburn   0.093 
2218 751    municipal  81  Bonney Lake 0.088 
2219 752    municipal  405  Auburn   0.093 
2220 753    municipal  171  Steilacoom  0.094 
2221 754    municipal  235  Lakewood  0.094 
2222 755    municipal  176  Fircrest  0.094 
2223 750    state   1   Washington  0.065 
2224 751    state   1   Washington  0.065 

開始点はこの構造のデータフレームです。

 aggregate_FID jurisdiction FID 
2217 750    municipal  405 
2218 751    municipal  81 
2219 752    municipal  405 
2220 753    municipal  171 
2221 754    municipal  235 
2222 755    municipal  176 
2223 750    state   1 
2224 751    state   1 

...名前と税率のフィールドを入力するために使用する必要がある複数のデータフレーム。

FID name  rate jurisdiction 
0 1 Waterville 0.082 municipal 
1 2 Riverside 0.081 municipal 
2 3 Pierce HBZ 0.079 municipal 
3 4 Cle Elum 0.080 municipal 
4 5 Pacific  0.095 municipal 

    FID name  rate jurisdiction 
0 1 Washington 0.065 state 

IはjurisdictionFID列に基づいて、第1の後者のデータ・フレームを一致、及びnamerate列を移入する必要があります。私は...

df_merge = pd.merge(left=df_aggregate, right=df_jurisdiction, how='left', on=['FID', 'jurisdiction'])

を使用して後者のデータフレームの1つにマージする単一のデータフレームを作成するために管理している...しかし、これはテーブルのみの1のために働きます。残念ながら、私はこれを1つだけでなく7つのテーブルで行う必要があります。これは2日以上にわたり今のところ痛みでした。私の質問で十分に明確になっていない場合は、より明確に尋ねてください。また、事前にお手伝いをしていただきありがとうございます。

答えて

3

すべての管轄のテーブルを連結してから、mergeを使用することができます。それはこのようなものに見えるでしょう。

j_all = pd.concat([j1, j2, j3, j4, j5, j6, j7]) 
df_merge = pd.merge(left=df_aggregate, right=j_all, how='left', on=['FID', 'jurisdiction']) 
+0

テッド、これは素晴らしいです!どうもありがとうございます!あなたはロック! – knu2xs

関連する問題