我有2個dataframes是很仔細看下面的一個(有一些但是不應該影響產生的額外列):熊貓:數據幀合併有兩列錯誤匹配
編輯:添加額外的變量按照要求。 - 符號表示丟失的數據
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"])
我得到錯誤的結果從額外的列(中省略爲清楚起見)號碼有時一倍/兩倍。
編輯:這似乎是因爲它與dataframe1中的空ProductID字段與dataframe2中的空productID匹配。我需要省略這一點。
我真正需要的是一個簡單的合併,其中當dataframe2中的productId和Date找到匹配時,將dataframe2的實際比率作爲新列添加。應該排除dataframe2中的任何額外項目,並且不應排除dataframe1中的任何匹配。
我也試過了,對,內,外,合併。
它似乎總是以相同的方式扭曲結果(將某些行項目加倍和增加三倍)。
是畸形的日期故意的嗎? – piRSquared
'-'是否意味着它缺少或等於字符串'' - ''? – piRSquared