2017-07-05 11 views
0

に応じて複数のテーブルをマージ、私は3つのテーブルを持っているA、B、Cパイソン:パンダ:インデックステーブルたとえば

表A:

id1 value1 
1  23 
2  34 
3  2342 
4  333 

表B:

id2 value2 
1  apple 
2  banana 
3  berry 

表C:

id3 value3 value4 
1  red  batman 
2  green superman 
3  white wonder woman 
4  gray  aquaman 
5  yellow flash 

これらをマージしたいインデックステーブルDによるHREEテーブル

表D:

Table_A Table_B Table_C 
1   3   2 
3      4  
2   2   3 
4   1   1 
         5 

そして、私の結果のテーブルが好きなはずです。

id1 value1 id2 value2 id3 value3 value4 
1  23  3  berry  2  green superman 
3  2342      4  gray  aquaman 
2  34  2  banana 3  white wonder woman 
4  333  1  apple  1  red  batman 
           5  yellow flash 

は、私はPythonのパンダを経由してそれを行うことができますか私はスパークでそれを行う必要があります?

+0

ルックpandas.Series.map.html – Wen

答えて

0

のは、試してみましょう:

table_d['value1'] = table_d['Table_A'].map(table_a.set_index('id1')['value1']) 

table_d['value2'] = table_d['Table_B'].map(table_b.set_index('id2')['value2']) 

table_d.merge(table_c, left_on='Table_C', right_on='id3') 

出力: `map`ではなく` merge` https://pandas.pydata.org/pandas-docs/stable/generated/で

Table_A Table_B Table_C value1 value2 id3 value3  value4 
0  1.0  3.0  2 23.0 berry 2 green  superman 
1  3.0  NaN  4 2342.0  NaN 4 gray  aquaman 
2  2.0  2.0  3 34.0 banana 3 white wonder woman 
3  4.0  1.0  1 333.0 apple 1  red  batman 
4  NaN  NaN  5  NaN  NaN 5 yellow   flash 
関連する問題