【问题标题】:merge multiple dataframe with specified suffix合并具有指定后缀的多个数据框
【发布时间】:2018-06-22 12:24:02
【问题描述】:

我实现了合并多个引用this page的数据框。
我想要做的也是为每个数据帧指定后缀,如下所示。
但是,我得到ValueError: too many values to unpack (expected 2)
我知道为后缀提供长于 2 的元组会导致此问题。但我不知道如何编写代码来解决这个问题。
谁能告诉我怎么写?

def agg_df(dfList, suffix):
    temp=reduce(lambda left, right: pd.merge(left, right, left_index=True, right_index=True, 
                                             how='outer', suffixes=suffix), dfList)
    return temp

df=agg_df([df_cool, df_light, df_sp, df_hvac], ('_chiller', '_light', '_sp', '_hvac'))

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    你可以在merge前加上后缀,加上add_suffix

    dfs = {0: df_cool, 1: df_light, 2: df_sp, 3: df_hvac}
    suffix = ('_chiller', '_light', '_sp', '_hvac')
    for i in dfs:
        dfs[i] = dfs[i].add_suffix(suffix[i])
    

    然后从merge 中删除suffixes 参数,您就完成了:

    def agg_df(dfList):
        temp=reduce(lambda left, right: pd.merge(left, right, 
                                                 left_index=True, right_index=True, 
                                                 how='outer'), dfList)
        return temp
    
    df = agg_df(dfs.values())
    

    【讨论】:

      【解决方案2】:

      Merge is pyspark 没有后缀选项,但你可以使用考拉来完成

          import databricks.koalas as ks
      
          left_kdf = ks.DataFrame(hist_sls_cy)
          right_kdf = ks.DataFrame(hist_sls_ly)
          kdf_cmbnd = left_kdf.merge(right_kdf,on=['x1','x2'],how='left',suffixes=('','_last'))
      

      【讨论】:

        猜你喜欢
        • 2020-03-31
        • 2018-03-15
        • 1970-01-01
        • 2019-07-20
        • 2021-12-04
        • 2012-09-01
        • 2020-09-20
        • 2018-07-16
        • 1970-01-01
        相关资源
        最近更新 更多