如何将同一列数组分配给Pandas中的多个数据框?

时间:2019-07-08 12:20:49

标签: python pandas bigdata

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

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

我遇到的问题是将有序列表应用于9个数据集。每当我尝试更改单个数据集中的列时,我都会不断收到KeyError“ [[[列的列表]]不在索引中”。

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

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

我希望结果将创建9个数据集,这些数据集在同一条轴上进行大熊猫以外的追加或concat操作。

1 个答案:

答案 0 :(得分:0)

我刚刚解决了。

reindiex函数起作用。我在我创建的数据框列表之外应用了reindex函数。

我将前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)