【发布时间】:2019-07-04 22:03:50
【问题描述】:
我有一个包含 6 列和 450 万行的数据集,我想遍历所有数据集,以比较我的数据集中每一行的最后一列的值和第一列的值并将最后一列的值与行的第一列的值匹配的行附加到该行。
我想到的第一个解决方案是使用 pandas 的.iter,但我认为对于大型数据集来说它太慢了。
假设这是我的数据集:
x = [['2', 'Jack', '8'],['1', 'Ali', '2'],['4' , 'sgee' , '1'],
['5' , 'gabe' , '2'],['100' , 'Jack' , '6'],
['7' , 'Ali' , '2'],['8' , 'nobody' , '20'],['9' , 'Al', '10']]
结果应该是这样的:
[['2', 'Jack', '8', '1', 'Ali', '2', '5' , 'gabe' , '2','7' , 'Ali' , '2'],
['1', 'Ali', '2', '4' , 'sgee' , '1'],
['8' , 'nobody' , '20', '2', 'Jack', '8']]
我试过的代码是:
for line in x:
arow=line
for row in x:
brow=row
if line[2]==row[0]:
brow.extend(arow)
table.append(brow)
print(table)
但结果似乎重复:
[['8', 'nobody', '20', '2', 'Jack', '8'],
['2', 'Jack', '8', '1', 'Ali', '2', '5', 'gabe', '2', '7', 'Ali', '2'],
['1', 'Ali', '2', '4', 'sgee', '1'],
['2', 'Jack', '8', '1', 'Ali', '2', '5', 'gabe', '2', '7', 'Ali', '2'],
['2', 'Jack', '8', '1', 'Ali', '2', '5', 'gabe', '2', '7', 'Ali', '2']]
【问题讨论】:
-
你试过了吗?
-
你需要它运行多快?
-
@张海峰。是的!我编辑了我的问题。谢谢你提醒我。如您所见,我的结果重复
标签: python