一致マージ私は、以下のいずれかに非常に密接に見て2つのデータフレームを持っている(ただし、結果に影響を与えてはならない追加の列があります)必要に応じて - 記号は、失われたデータパンダは:</p> <p><strong>編集</strong>:追加されました余分な変数DATAFRAME 2つの列とエラーが
dataframe1を意味
ProductID Date Booked Rate
10 01/01/2017 10.0
10 02/01/2017 0.3
10 03/01/2017 70.4
20 01/01/2017 100.0
20 02/01/2017 70.0
20 03/01/2017 0.1
- 04/01/2017 0.5
dataframe2
ProductID Date Actual Rate
10 01/01/2017 11.0
10 02/01/2017 12.3
10 03/01/2017 75.4
20 01/01/2017 110.0
20 02/01/2017 80.0
30 03/01/2017 10.1
- 04/01/2017 0.7
は、理想的には結果がでなければなりませんデータフレーム3:
ProductID Date Booked Rate Actual Rate
10 01/01/2017 10.0 11.0
10 02/01/2017 0.3 12.3
10 03/01/2017 70.4 75.4
20 01/01/2017 100.0 110.0
20 02/01/2017 70.0 80.0
20 03/01/2017 0.1 -
- 04/01/2017 0.5 -
私は次のコードを使用して、私の本当のデータセットにマージを行います。
df3 = pd.merge(left=df1, right=df2, how="left", left_on=["ProductID", "Date"], right_on=["ProductID", "Date"])
私は(明確にするためommited)余分な列から数字として間違った結果を得ることが時々倍増している/三倍。
編集:これは、dataframe1の空のProductIDフィールドとdataframe2の空のproductIDが一致するためです。私はこれを外す必要があります。
本当に必要なのは、dataframe1のproductIdとDateに一致するものが見つかると、dataframe2の実際のレートが新しい列として追加される単純なマージです。 dataframe2の余分な項目は除外されるべきであり、dataframe1の中のどの項目も除外されるべきではありません。
また、右、内側、外側、マージを試しました。
結果は同じ正確な方法で(特定の広告申込情報を倍増または3倍に)常に歪ませるようです。
は意図的な不正な日付はありますか? – piRSquared
'-'は、文字列' '-''がないか、それと等しいことを意味しますか? – piRSquared