gpt4 book ai didi

python - Pandas 获取两个索引之间的交集位置

转载 作者:行者123 更新时间:2023-11-30 22:35:24 27 4
gpt4 key购买 nike

如果我有 2 个 Pandas 数据帧索引 idx1 和 idx2,如何获取交集的索引位置(从原始索引):

idx1 = pd.Index([1, 2, 3, 4])
idx2 = pd.Index([3, 4, 5, 6])
intersect = idx1.intersection(idx2)

查找 idx1 的 [2, 3] 和 idx 2 的 [0, 1]。

这不起作用:

idx1.get_loc(intersect)

我可以做一个循环来获取这些值,但是有更好的方法吗?

for x in intersect:
print(idx1.get_loc(x))

最佳答案

如果索引是唯一的,可以使用get_indexer:

idx1.get_indexer(intersect)
# array([2, 3])

idx2.get_indexer(intersect)
# array([0, 1])

如果索引不唯一,则需要使用 isin 方法和 numpy.where:

pd.np.where(idx1.isin(intersect))[0]
# array([2, 3])

pd.np.where(idx2.isin(intersect))[0]
# array([0, 1])

关于python - Pandas 获取两个索引之间的交集位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44577866/

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