gpt4 book ai didi

python - 合并 Pandas 中的公共(public)列值会产生不正确的数据框

转载 作者:太空宇宙 更新时间:2023-11-04 04:25:05 25 4
gpt4 key购买 nike

<分区>

我正在尝试基于公共(public)列合并 pandas 中的 2 个数据框。阅读有关合并的文档,我所做的一切都暗示数据框应该合并到指定的列上,同时只保留公共(public)值。它当然保留了共同的值(value),但产生了一个巨大的数据帧,对于“左”数据帧中的每个索引,它本质上是一个完整的“右”数据帧。

我的左边数据框是

left
Out[325]:
A B C D MergeThis
0 38 43 20 34 -N2
1 14 44 23 91 -N2
2 55 50 30 92 -N2
3 29 20 56 0 -N2
4 61 6 38 44 -N2
5 18 61 30 7 -N2
6 67 45 60 81 -N2
7 7 53 60 72 +N2
8 15 46 0 82 +N2
9 6 90 83 36 +N2
10 0 87 64 82 +N2
11 13 22 13 39 +N2
12 65 88 50 34 +N2
13 35 31 72 34 +N2

我正确的数据框是

right
Out[326]:
E F G H MergeThis
0 22 81 97 28 +N2
1 20 4 44 48 +N2
2 19 41 52 25 +N2
3 30 37 66 24 +N2
4 32 40 56 92 +N2
5 95 76 91 31 +N2
6 36 66 17 85 +N2

显然,我试图在“MergeThis”列上进行合并,这样我最终得到 +N2 值的组合,以及来自“左”和“右”的列。然而,我最终得到的是一些奇怪的东西:

left.merge(right, on='MergeThis')
Out[327]:
A B C D MergeThis E F G H
0 7 53 60 72 +N2 22 81 97 28
1 7 53 60 72 +N2 20 4 44 48
2 7 53 60 72 +N2 19 41 52 25
3 7 53 60 72 +N2 30 37 66 24
4 7 53 60 72 +N2 32 40 56 92
5 7 53 60 72 +N2 95 76 91 31
6 7 53 60 72 +N2 36 66 17 85
7 15 46 0 82 +N2 22 81 97 28
8 15 46 0 82 +N2 20 4 44 48
9 15 46 0 82 +N2 19 41 52 25
10 15 46 0 82 +N2 30 37 66 24
11 15 46 0 82 +N2 32 40 56 92
12 15 46 0 82 +N2 95 76 91 31
13 15 46 0 82 +N2 36 66 17 85
14 6 90 83 36 +N2 22 81 97 28
15 6 90 83 36 +N2 20 4 44 48
16 6 90 83 36 +N2 19 41 52 25
17 6 90 83 36 +N2 30 37 66 24
18 6 90 83 36 +N2 32 40 56 92
19 6 90 83 36 +N2 95 76 91 31
20 6 90 83 36 +N2 36 66 17 85
21 0 87 64 82 +N2 22 81 97 28
22 0 87 64 82 +N2 20 4 44 48
23 0 87 64 82 +N2 19 41 52 25
24 0 87 64 82 +N2 30 37 66 24
25 0 87 64 82 +N2 32 40 56 92
26 0 87 64 82 +N2 95 76 91 31
27 0 87 64 82 +N2 36 66 17 85
28 13 22 13 39 +N2 22 81 97 28
29 13 22 13 39 +N2 20 4 44 48
30 13 22 13 39 +N2 19 41 52 25
31 13 22 13 39 +N2 30 37 66 24
32 13 22 13 39 +N2 32 40 56 92
33 13 22 13 39 +N2 95 76 91 31
34 13 22 13 39 +N2 36 66 17 85
35 65 88 50 34 +N2 22 81 97 28
36 65 88 50 34 +N2 20 4 44 48
37 65 88 50 34 +N2 19 41 52 25
38 65 88 50 34 +N2 30 37 66 24
39 65 88 50 34 +N2 32 40 56 92
40 65 88 50 34 +N2 95 76 91 31
41 65 88 50 34 +N2 36 66 17 85
42 35 31 72 34 +N2 22 81 97 28
43 35 31 72 34 +N2 20 4 44 48
44 35 31 72 34 +N2 19 41 52 25
45 35 31 72 34 +N2 30 37 66 24
46 35 31 72 34 +N2 32 40 56 92
47 35 31 72 34 +N2 95 76 91 31
48 35 31 72 34 +N2 36 66 17 85

这基本上为我的“正确”数据框的每个索引创建了一个重复的数据框。

一方面,我知道如何做另一种解决方法来使用更多代码获取我想要的数据框,并进一步分解其中一个数据框,以便合并“更漂亮”。但是,我真的很想知道为什么会这样?我希望将来能够使用合并功能,但我不完全理解 pandas 正在尝试做什么来产生这个功能。

非常感谢任何帮助。

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