私はPandasが新しく、同様の列を持つ2つのデータセットを結合したいと思います。列には、多くの同一の値に加えて、他の列と比較してそれぞれ固有の値があります。各列にはいくつか重複して保管しておきたいものがあります。私の希望する出力は以下の通りです。 how = 'inner'または 'outer'を追加しても目的の結果が得られません。Pandas mergeは不要な重複エントリを作成します
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
私が希望の出力をマージを使用して達成する方法を教えてください、ありがとうございます!
編集 これについて多くのコメントがあります。なぜ私がこの振る舞いについて混乱しているのかを明確にするために、単に別の列を追加すると4つの2を作るのではなく、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