gpt4 book ai didi

python - 在 pandas 中使用 isin 的最快方法

转载 作者:太空宇宙 更新时间:2023-11-03 18:20:18 26 4
gpt4 key购买 nike

我有两个带有 ID 列的 csv,其中第一个 csv 中的 ID 是第二个 csv 中 ID 的子集。为了节省空间,在读取第一个 csv 后,我尝试仅读取第一个 csv 中出现的第二个 csv 中的行,如下所示:

chunker = pd.read_csv(t_path)

df = pd.DataFrame()
for chunk in chunker:
# keep_ids is a series of ids from previous table
temp = chunk[chunk['Id'].isin(keep_ids)]
df = df.append(temp, ignore_index=True)
df.reset_index()

我正在处理的文件有 30 GB 大,所以速度可能有点慢。有没有更快的方法来找到正确的 id,可能使用索引?

编辑 1:将 block 的索引设置为等于 id 列,然后仅保留与 keep_ids 成功合并的行是否会很快?

最佳答案

也许是这样的:

chunker = pd.read_csv(t_path, iterator=True, chunksize=1000)
df = pd.concat(chunk[chunk['Id'].isin(keep_ids) for chunk in chunker ])

关于python - 在 pandas 中使用 isin 的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24270444/

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