Python 伊辛回归指数

Python 伊辛回归指数,python,indexing,pandas,Python,Indexing,Pandas,我有一个pandas数据框df,其中包含唯一id的列表id,还有一个数据框,其中包含所有已知id的主列表master_df.id。我正在试图找出执行isin的最佳方法,该方法还将返回值所在的索引。所以如果我的数据框是 master_df index id 1 1 2 2 3 3 index id 1 3 2 4 3 1 和df index id 1 1 2 2 3 3 index id 1 3 2 4

我有一个pandas数据框
df
,其中包含唯一id的列表
id
,还有一个数据框,其中包含所有已知id的主列表
master_df.id
。我正在试图找出执行
isin
的最佳方法,该方法还将返回值所在的索引。所以如果我的数据框是

master_df

index id
1     1
2     2
3     3
index id
1     3
2     4
3     1
df

index id
1     1
2     2
3     3
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
列索引_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,但我认为在这里。正如@DSM所指出的,在python中,
False==0
因此,如果以False作为缺少vs的代表,则可能会遇到麻烦。(如果仍要执行此操作,请使用
.fillna(0)
将NaN替换为0)

注意:只记录您关心的列可能更有效:

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

master_df
的索引是否有意义?如果您可以使
master_-df
以id作为索引,那么您可以直接在
master_-df
中查找值。您没有提到的一点是
False==0
,这很容易让您陷入麻烦
NaN
避免了这个问题。@DSM很好的一点,我在尝试fillna时意识到了这一点,不知道为什么我忽略了提到它!