【问题标题】:How to assign the same array of columns to multiple dataframes in Pandas?如何将相同的列数组分配给 Pandas 中的多个数据框?
【发布时间】:2019-07-08 12:20:49
【问题描述】:

我有 9 个数据集。在任何 2 个给定的数据集之间,它们将共享大约 60-80% 的相同列。我想将这些数据集连接成一个数据集。由于一些内存限制,我无法将这些数据集加载到数据框中并使用 pandas 中的连接函数(但我可以将每个单独的数据集加载到数据框中)。相反,我正在寻找一种替代解决方案。

我创建了这些数据集中存在的所有列的有序列表。我想将此列列表应用于每个单独的 9 个数据集。这样,它们都将具有相同的列并且顺序相同。完成后,我将对终端中的平面文件执行连接功能,这实际上会将每个数据集附加在一起,希望能解决我的问题并创建这 9 个数据集。

我遇到的问题是将有序列表应用于 9 个数据集。每当我尝试更改单个数据集中的列时,我都会收到 KeyError "[[list of columns]] not in index"。

这是我一直在尝试的: df = df[clist]

我也试过 df = df.reindex(columns=clist) 但这不会在数据框中创建额外的列,它只是按照 clist 所在的顺序对它们进行排序。

我希望结果会创建 9 个数据集,这些数据集排列在同一轴上,用于 Pandas 之外的追加或连接操作。

【问题讨论】:

    标签: python pandas bigdata


    【解决方案1】:

    我刚刚解决了。

    reindiex 函数确实有效。我在我创建的数据框列表之外应用了重新索引函数。

    我将这 9 个数据集及其前 9 行加载到一个列表中。

    for filename in all_files:
           df = pd.read(filename,nrows=10)
           li.append(df)
    

    从那个列表中,我使用了重新索引

    for i in range(0,9):
            li[i]=li[i].reindex(columns=clist)
    

    【讨论】:

      猜你喜欢
      • 2014-07-06
      • 2013-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-10
      • 1970-01-01
      • 2020-09-30
      相关资源
      最近更新 更多