gpt4 book ai didi

Python Pandas isin 返回索引

转载 作者:太空宇宙 更新时间:2023-11-04 01:22:56 24 4
gpt4 key购买 nike

我有一个 pandas DataFrame df,其中包含一个唯一 ID id 列表,以及一个包含所有已知 ID master_df.id 主列表的 DataFrame >。我正在尝试找出最好的方法来执行 isin ,它还会向我返回值所在的索引。所以如果我的 DataFrame 是

master_df

index id
1 1
2 2
3 3

df

index id
1 3
2 4
3 1

我想要类似(3, False, 1) 的东西。我目前正在做一个 is in,然后寻找然后用循环暴力强制查找,但我确信有更好的方法来做到这一点。

最佳答案

一种方法是合并:

In [11]: df.merge(mdf, on='id', how='left')
Out[11]:
index_x id index_y
0 1 3 3
1 2 4 NaN
2 3 1 1

并且列 index_y 是所需的结果*:

In [12]: df.merge(mdf, on='id', how='left').index_y
Out[12]:
0 3
1 NaN
2 1
Name: index_y, dtype: float64

* 除了NaN vs. False,但我认为NaN is what you really want这里。正如@DSM 指出的那样,在 python False == 0 中,您可能会遇到麻烦,因为 False 代表丢失与被发现 ID 为 0。(如果您仍然想这样做,请替换使用 .fillna(0) 为 0 的 NaN。

注意:只获取您关心的列可能会更有效:

df[['id']].merge(mdf[['id', 'index']], on='id', how='left')

关于Python Pandas isin 返回索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20015617/

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