Python 伊辛回归指数
我有一个pandas数据框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
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时意识到了这一点,不知道为什么我忽略了提到它!