gpt4 book ai didi

python - Pandas 合并创建不需要的重复条目

转载 作者:太空宇宙 更新时间:2023-11-03 11:44:38 24 4
gpt4 key购买 nike

我是 Pandas 的新手,我想合并两个具有相似列的数据集。与其他列相比,除了许多相同的值之外,每个列都将具有一些独特的值。我想保留每列中的一些重复项。我想要的输出如下所示。添加 how='inner' 或 'outer' 不会产生预期的结果。

import pandas as pd

df1 = df2 = pd.DataFrame({'A': [2,2,3,4,5]})

print(pd.merge(df1,df2))

output:
A
0 2
1 2
2 2
3 2
4 3
5 4
6 5

desired/expected output:
A
0 2
1 2
2 3
3 4
4 5

请告诉我如何/是否可以使用合并实现所需的输出,谢谢!

编辑为了澄清为什么我对这种行为感到困惑,如果我简单地添加另一列,它不会产生四个 2,而是只有两个 2,所以我希望在我的第一个示例中它也会有两个 2。为什么行为似乎发生了变化, Pandas 在做什么?

import pandas as pd
df1 = df2 = pd.DataFrame(
{'A': [2,2,3,4,5], 'B': ['red','orange','yellow','green','blue']}
)

print(pd.merge(df1,df2))

output:
A B
0 2 red
1 2 orange
2 3 yellow
3 4 green
4 5 blue

However, based on the first example I would expect:
A B
0 2 red
1 2 orange
2 2 red
3 2 orange
4 3 yellow
5 4 green
6 5 blue

最佳答案

import pandas as pd

dict1 = {'A':[2,2,3,4,5]}
dict2 = {'A':[2,2,3,4,5]}

df1 = pd.DataFrame(dict1).reset_index()
df2 = pd.DataFrame(dict2).reset_index()

df = df1.merge(df2, on = 'A')
df = pd.DataFrame(df[df.index_x==df.index_y]['A'], columns=['A']).reset_index(drop=True)

print(df)

输出:

   A
0 2
1 2
2 3
3 4
4 5

关于python - Pandas 合并创建不需要的重复条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42444078/

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