我是熊貓新手,我想合併兩個具有相似列的數據集。除了許多相同的值之外,列將與其他列相比具有一些唯一值。每列中都有一些我想保留的重複項。我所需的輸出如下所示。添加='內部'或'外部'不會產生所需的結果。熊貓合併創建不需要的重複條目
import pandas as pd
dict1 = {'A':[2,2,3,4,5]}
dict2 = {'A':[2,2,3,4,5]}
df1 = pd.DataFrame(dict1)
df2 = pd.DataFrame(dict2)
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。爲什麼行爲似乎會改變,大熊貓在做什麼?
import pandas as pd
dict1 = {'A':[2,2,3,4,5],
'B':['red','orange','yellow','green','blue'],
}
dict2 = {'A':[2,2,3,4,5],
'B':['red','orange','yellow','green','blue'],
}
df1 = pd.DataFrame(dict1)
df2 = pd.DataFrame(dict2)
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
請您加入更明確一些例子,說了一些不同的數據點? – miradulo
我以前遇到過確切的問題。當您嘗試合併的列中有重複項時,會發生這種情況 – AsheKetchum
我提供的答案將幫助您用臨時索引解決它。你會得到所需的輸出,但它不一定是最有效的方法。 – AsheKetchum