我有两个csv文件。第一个可能很大,第二个很小。每个参数都保存一些值,例如pandas.DataFrame
。由于第一个文件可能太大而无法读取到内存中。我决定使用Dask
处理这两个文件。
我想做的是合并两个文件。如果索引和列相同,那么我将两个值相加。同时添加新的列或索引。例如,我有两个文件,例如:
文件1:
,col_1,col_2,col_3
row_1,1,2,3
row_2,2,4,6
file2:
,col_1,col_2,col_4
row_1,1,1,1
row_3,2,2,2
最后,我将得到一个像这样的新文件:
新文件
,col_1,col_2,col_3,col_4
row_1,2,3,3,1
row_2,2,4,6,0
row_3,2,2,0,2
然后Dask.DataFrame
最方便或最有效的方法是什么?是否有其他解决方案来处理这两个文件(第一个文件太大而无法读入内存)?
要正确执行此操作,您的两个数据框将需要通过您要加入的列进行索引。如果该列名为0
,则您可能要调用
df = df.set_index(0)
在两个数据帧上。如果对该列中的行进行了排序,则将需要对数据进行完全读取(但这可以在较小的空间中完成)。如果该列中的行未排序,则将非常昂贵。