我想删除数据帧中的重复集。你知道吗
import pandas as pd
import pdb
filename = "result_4_tiling_116.csv"
chunksize = 10 ** 6
for chunk in pd.read_csv(filename, names=['id', 'tileID', 'x', 'y', 'h', 'w'], chunksize=chunksize):
pdb.set_trace()
前31行数据的示例:
chunk.head(31)
tileID x y h w
0 0 0 0.0 1 8.0
1 1 0 8.0 1 8.0
2 0 0 8.0 1 8.0
3 1 0 0.0 1 4.0
4 2 0 4.0 1 4.0
5 0 0 0.0 1 4.0
6 1 0 4.0 1 4.0
7 2 0 8.0 1 4.0
8 3 0 12.0 1 4.0
9 0 0 4.0 1 4.0
10 1 0 8.0 1 4.0
11 2 0 12.0 1 4.0
12 3 0 0.0 1 2.0
13 4 0 2.0 1 2.0
14 0 0 8.0 1 4.0
15 1 0 12.0 1 4.0
16 2 0 0.0 1 2.0
17 3 0 2.0 1 2.0
18 4 0 4.0 1 2.0
19 5 0 6.0 1 2.0
20 0 0 12.0 1 4.0
21 1 0 0.0 1 2.0
22 2 0 2.0 1 2.0
23 3 0 4.0 1 2.0
24 4 0 6.0 1 2.0
25 0 0 8.0 1 4.0
26 1 0 12.0 1 4.0
27 2 0 0.0 1 2.0
28 3 0 2.0 1 2.0
29 4 0 4.0 1 2.0
30 5 0 6.0 1 2.0
我想把重复的过滤掉。数据包含一组组(从tileID=0开始的每个组),如下所示: 1你知道吗
0 0 0 0.0 1 8.0
1 1 0 8.0 1 8.0
2。你知道吗
2 0 0 8.0 1 8.0
3 1 0 0.0 1 4.0
4 2 0 4.0 1 4.0
三。你知道吗
5 0 0 0.0 1 4.0
6 1 0 4.0 1 4.0
7 2 0 8.0 1 4.0
8 3 0 12.0 1 4.0
第四条。你知道吗
9 0 0 4.0 1 4.0
10 1 0 8.0 1 4.0
11 2 0 12.0 1 4.0
12 3 0 0.0 1 2.0
13 4 0 2.0 1 2.0
五。你知道吗
14 0 0 8.0 1 4.0
15 1 0 12.0 1 4.0
16 2 0 0.0 1 2.0
17 3 0 2.0 1 2.0
18 4 0 4.0 1 2.0
19 5 0 6.0 1 2.0
六。你知道吗
20 0 0 12.0 1 4.0
21 1 0 0.0 1 2.0
22 2 0 2.0 1 2.0
23 3 0 4.0 1 2.0
24 4 0 6.0 1 2.0
七。你知道吗
25 0 0 8.0 1 4.0
26 1 0 12.0 1 4.0
27 2 0 0.0 1 2.0
28 3 0 2.0 1 2.0
29 4 0 4.0 1 2.0
30 5 0 6.0 1 2.0
在本例中,5和7是重复数据。我尝试使用drop_duplicates
,但还没有成功。你知道吗
但看,你的复制品是有效的
这可能不是解决这个问题的最有效方法,但它给出了正确的结果。你知道吗
让
df
作为初始数据帧:将提供:
这里的想法是迭代初始数据帧的块,将它们收集到一个列表中,并检查当前迭代中的块是否已经存在于该列表中。别忘了重新设置索引!你知道吗
有关如何迭代块的解释,请参见this answer。你知道吗
编辑:
对于~20Gb的巨大输入文件,您可以尝试将处理过的唯一块保存到一个文件中,而不是将它们保存在一个列表中,然后按块读取它们,方法与处理输入文件相同。你知道吗
相关问题 更多 >
编程相关推荐