gpt4 book ai didi

Python:内存高效,在 python 中快速查找 1 亿对数据?

转载 作者:行者123 更新时间:2023-12-04 08:30:34 26 4
gpt4 key购买 nike

这是我第一次在这里提问,如果我做错了什么,请见谅。

我希望创建某种类型的数据框/字典/列表,我可以在其中检查一列中的 ID 之前是否在另一列中看到过特定值。

例如,对于像这样的一个 pandas 数据框(9000 万行):

ID  Another_ID
1 10
1 20
2 50
3 10
3 20
4 30

还有一个像这样(1000 万行):

ID  Another_ID
1 30
2 30
2 50
2 20
4 30
5 70

我想以这样的第三列结尾:

ID  Another_ID seen_before
1 30 0
2 30 0
2 50 1
2 20 0
4 30 1
5 20 0

我正在寻找一种内存高效但快速的方法来做到这一点,有什么想法吗?谢谢!

最佳答案

合并是个好主意,在这里,你想合并两列:

df1['seen_before'] = 1

df2.merge(df1, on=['ID', 'Another_ID'], how='left')

输出:

   ID  Another_ID  seen_before
0 1 30 NaN
1 2 30 NaN
2 2 50 1.0
3 2 20 NaN
4 4 30 1.0
5 5 70 NaN

注意:这假定 df1 没有重复项。如果您对此不确定,请在 merge 中将 df1 替换为 df1.drop_duplicates()

关于Python:内存高效,在 python 中快速查找 1 亿对数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65045474/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com