csv中有一些文件。
示例: first.csv:
a b c d pos chrom
31 412 544 233 44234 1
23 4f3 515 141 551 2
dsf 3rs 2321 512 51 5
123 22 123 5155 2355 1
...
second.csv
a Name d position chrom
31 dasf 233 34244 1
23 faf 521 551 2
dsf gdsg 422 321 5
123 dsgg 5155 2355 1
....
两个都有数千条记录。我需要找到具有相同位置的记录,然后以另一种方法处理它。 因此,我尝试通过在熊猫中加入inner来合并这些框架。
innerDF = pd.merge(first, second, how = 'inner', left_on = 'position', right_on='ars120_pos')
我遇到了内存错误。当然,我在搜索问题时发现了一些答案,但我对它们有疑问。
我不会使用dask,因为每次使用它时,我都会遇到差异错误。我看这是一辆越野车。
我在熊猫里发现了块状小费。我尝试使用它:
first = pd.read_csv('/home/iso/Desktop/Work/Map/Ill/first.csv',sep = ',', chunksize = 1000, iterator= True)
temp = None
temp_chunk = None
for chunk1 in first:
second = pd.read_csv('/home/iso/Desktop/Work/Map/ARS/second.csv', chunksize = 1000, iterator = True)
for chunk2 in second:
temp_chunk = pd.merge(chunk1, chunk2, left_on = 'pos', right_on='position', how = 'inner')
temp = pd.concat([temp, temp_chunk])
finalData = temp.drop_duplicates(keep='first')
但是,当我运行它时,代码正在编译几个小时,看起来好像已经冻结了。
可以告诉我,为什么第二次尝试不起作用?我在这里找到它。有人可以给我建议或链接到该任务的最佳实践吗?