2017-09-28 23 views
1

インデックスと価格列として3つのデータフレームがあります。 3つのデータフレームを1つにマージし、価格列をマージします。私はこの投稿Python: pandas merge multiple dataframesで提案されているようにマージを試みましたが、結果は軸= 1の連結と同じです。pandasは1つの列に複数のデータフレームをマージして更新します

chained_price = reduce(lambda left, right: pd.merge(left, right, left_index=True, right_index = True, 
                how='right'), product_list) 

product_listは3つのdfを持つリストです。

   price 
date     
2013-09-10 1.000000 
2013-09-11 1.011578 
2013-09-12 -1.006452 

      price 
date    
2013-09-11 3.011578 
2013-09-12 5.006452 
2013-09-13 6.000544 

      price 
date    
2013-09-12 8.011578 
2013-09-13 7.006452 
2013-09-14 10.000544 

期待される結果:

  price 
date 
2013-09-10 1.000000 
2013-09-11 3.011578 
2013-09-12 8.011578 
2013-09-13 7.006452 
2013-09-14 10.000544 

任意のアドバイスはありますか?

答えて

4

日が続い

df4 = pd.concat(product_list) 
df4[~df4.index.duplicated(keep='last')] 
インデックスされている場合は、

df4 = pd.concat(product_list).drop_duplicates('date',keep='last') 
 
     date  price 
0 2013-09-10 1.000000 
0 2013-09-11 3.011578 
0 2013-09-12 8.011578 
1 2013-09-13 7.006452 
2 2013-09-14 10.000544 

すなわちドロップ重複して連結を必要とします

関連する問題