Python Pandas isin返回索引

特里斯坦·马修斯

我有一个df带有唯一ID列表的pandas DataFrameid和一个带有所有已知ID的主列表的DataFrame master_df.id我试图找出最好的方式来执行isin,它还会向我返回值所在的索引。所以如果我的DataFrame是

master_df 原为

index id
1     1
2     2
3     3

并且df

index id
1     3
2     4
3     1

我想要类似的东西(3, False, 1)我当前正在执行“操作”,然后通过循环强行查找,但我敢肯定有更好的方法。

安迪·海登(Andy Hayden)

一种方法是进行合并:

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是您真正想要的正如@DSM所指出的那样,在python中False == 0,您可能会遇到以False作为代表ID为0的缺失vs的代表的麻烦。(如果仍然要这样做,则使用,将NaN替换为0 .fillna(0))。

注意:仅关注您感兴趣的列可能会更有效:

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

python,pandas:从多索引返回最高值

来自分类Dev

Python Pandas索引

来自分类Dev

索引位置的Python Pandas值

来自分类Dev

Python Pandas索引编制改革

来自分类Dev

Python / Pandas if语句和索引

来自分类Dev

python pandas dataframe索引匹配

来自分类Dev

python 3 pandas系列索引?

来自分类Dev

我想找到组中最小的差异并返回索引。(Python,pandas)

来自分类Dev

python与pandas合并(相同的索引,相同的列)仍然返回_x和_y列

来自分类Dev

列上的Pandas(Python)索引与行索引冲突

来自分类Dev

Python Pandas-类似于ISIN,但是“包含”与“完全”匹配

来自分类Dev

Python Pandas Series.isin 不起作用

来自分类Dev

Python清单-返回索引

来自分类Dev

Python loc + isin返回FutureWarning(元素比较失败)

来自分类Dev

python pandas改组索引中的内存泄漏

来自分类Dev

Python Pandas:索引值和布尔比较

来自分类Dev

Python Pandas在索引上加入数据框

来自分类Dev

Python Pandas根据索引值创建列

来自分类Dev

python pandas series获取行的索引号

来自分类Dev

索引大于x的Python Pandas Select Index

来自分类Dev

Python Pandas:转换多索引数据框

来自分类Dev

行与标准Python Pandas匹配的列的索引

来自分类Dev

Python Pandas自定义DateTime索引

来自分类Dev

Python Pandas Groupby根据索引重置值

来自分类Dev

python pandas在列上没有索引

来自分类Dev

在Python中使用Pandas打印列的索引

来自分类Dev

Python pandas-基于条件的索引查找

来自分类Dev

Python Pandas:转换多索引数据框

来自分类Dev

Python Pandas:索引值和布尔比较