![](/img/trans.png)
[英]Is there a way to use pandas .isin() function with multiple lists?
[英]Fastest way to use isin in pandas
我有两个带有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个演出,因此这可能有点慢。 有没有更快的方法来找到适当的ID(可能使用索引)?
编辑1:将块的索引设置为等于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 ])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.