首页 > 解决方案 > 结合两个 Pandas Dataframes Python 的最佳方法

问题描述

我有两个要组合的数据框(目前):

                head_site_df = pd.DataFrame(head_sitetupaggr_list, columns =['Die Loc', 'X Coord', 'Y Coord'])
                regvalfile_df = pd.DataFrame(regvaltupaggr_list)

regvalfile_df 包含 800 多个动态生成的列。所以我无法列出这些列。为什么我现在说是因为情况有点复杂。我需要生成一个看起来像这样的 excel 表:

在此处输入图像描述

此数据来自日志文件。在 K 列之后,您可以有 800 列或更多列,这些列带有整数值的标题。这些是 regvalfile_df 中包含的列。另一个 DF 捕获列“Die Loc”和“X Coord”、“Y Coord”。我打算修改我的代码,以便最终能够让第二个 DF 也捕获 A 到 K 列。所以总的来说,我将有两个 DF。一个具有 A 到 K,另一个具有 L 及以上。

我的问题是,为了结合这两个单独的 DF 来获得 excel 表,最好的方法是什么。Cocatenate()、Merge)()、Join() 还是 Append()?什么是速度和内存消耗最有效的方法。我会结合两个熊猫DF。除非以某种方式让一个 DF 捕获所有内容会更有效。我看不出它会如何工作,因为 L 开始有“动态”数量的标题,每个文件都会改变。

到目前为止的代码示例。请注意代码有效。我刚刚取出了一个包含我迄今为止使用的数据结构的大块:

    for odfslogp_obj in odfslogs_plist:
    with zipfile.ZipFile(odfslogp_obj, mode='r') as z:
        for name in z.namelist():
            dfregval = pd.DataFrame()
            with z.open(name) as etest_zip:
                for head_site, loclist in zip(head_siteparam_tup_list, linesineed):  #is there a way to turn this all into a function inside a list comprehension?
                    regvals_ext = [x for x in loclist if pattern.search(x)]
                    #print(regvals_ext)
                    regvaltups_list = [tuple(x.split(":")[0:2]) for x in regvals_ext]
                    
                    regvaldict = dict(regvaltups_list)
                    regvaltupaggr_list.append(regvaldict)
                    head_siteloc_tup = (head_site[1], head_site[0].split(',')[0], head_site[0].split(',')[1])
                    # print(head_siteloc_tup)
                    head_sitetupaggr_list.append(head_siteloc_tup)

                #print(head_sitetupaggr_list)
                head_site_df = pd.DataFrame(head_sitetupaggr_list, columns =['Die Loc', 'X Coord', 'Y Coord'])
                regvalfile_df = pd.DataFrame(regvaltupaggr_list)

       

标签: pythonpython-3.xpandas

解决方案


推荐阅读