gpt4 book ai didi

python - 在单个数据框中显示所有匹配对 - Python Record Linkage

转载 作者:行者123 更新时间:2023-11-28 20:00:50 25 4
gpt4 key购买 nike

我有一个 pandas MultiIndex 对象:

In [0]: index
Out[0]:
MultiIndex(levels=[[1, 2, 3, 8], [10, 11]],
labels=[[0, 0, 1, 1, 2, 2, 3, 3], [0, 1, 0, 1, 0, 1, 0, 1]])

这个 MultiIndex 对象定义了以下 8 对:(1,10),(1,11),(2,10),(2,11),(3,10),(3,11),(8,10),(8,11).

层级中列出的元素对应于一个DataFrame的索引:

In [1]: df
Out[1]:
col_1 col_2
0 0 1
1 2 3
2 4 5
3 6 7
4 8 9
5 10 11
6 12 13
7 14 15
8 16 17
9 18 19
10 20 21
11 22 23

我想创建一个新的 DataFrame 来显示上面定义的所有对。看起来像的东西:

In [2]: result
Out[2]:
col_1 col_2 pair
2 3 0
20 21 0
2 3 1
22 23 1
4 5 2
20 21 2
4 5 3
22 23 3
6 7 4
20 21 4
6 7 5
22 23 5
16 17 6
20 21 6
16 17 7
22 23 7

有什么有效的方法可以实现吗? (如果可能,没有 for 循环)

提前致谢

最佳答案

使用 stackilocreindex

df.iloc[m.to_frame().stack()].assign(key=m.to_frame().reset_index(drop=True).stack().index.get_level_values(0))
Out[205]:
col_1 col_2 key
1 2 3 0
10 20 21 0
1 2 3 1
11 22 23 1
2 4 5 2
10 20 21 2
2 4 5 3
11 22 23 3
3 6 7 4
10 20 21 4
3 6 7 5
11 22 23 5
8 16 17 6
10 20 21 6
8 16 17 7
11 22 23 7

关于python - 在单个数据框中显示所有匹配对 - Python Record Linkage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54349664/

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