【问题标题】:pandas merge and update multiple dataframes into one columnpandas 将多个数据框合并并更新为一列
【发布时间】:2018-03-09 21:26:48
【问题描述】:

我有三个数据框,索引为日期和价格列。我想将三个数据框合并为一个并合并价格列。我尝试按照这篇文章Python: pandas merge multiple dataframes 的建议进行合并,但结果与轴 = 1 的串联相同。

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

product_list 是一个包含三个 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

有什么建议吗?

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    你需要 concat 与 drop 重复,即

    df4 = pd.concat(product_list).drop_duplicates('date',keep='last')
    
    日期价格 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

    如果日期是索引,那么

    df4 = pd.concat(product_list)
    df4[~df4.index.duplicated(keep='last')]
    

    【讨论】:

      猜你喜欢
      • 2015-04-17
      • 2019-10-19
      • 2015-04-02
      • 1970-01-01
      • 2019-12-16
      • 2021-07-21
      • 1970-01-01
      • 2020-11-30
      • 2017-12-02
      相关资源
      最近更新 更多