2
以下是數據框列的外觀。pandas數據框中的內部連接/合併給出比左側數據幀更多的行
DF1 = '設備號', '日期',... < < 10其他列>> 3500個記錄
DF2 = '設備號', '日期',.... < < 9其他列>> 14000個記錄
在每個數據幀中,既不「設備號」,也沒有「日期」是唯一的。但是,它們的組合對於識別行是唯一的。
我想形成一個新的數據框,它與來自df1和df2的行匹配,其中設備號和日期都相等,並且具有來自這些df1和df2的所有列。我正在嘗試的熊貓命令是
df3=pd.merge(df1, df2, how='inner', on=['device number', 'date'])
但是,df3給了我一個shape(14,000,21)的數據框。列號是有道理的,但內連接怎麼能有比任何左邊的數據框更多的行?這是否意味着我對內連接的理解有缺陷?另外,我怎樣才能達到我描述的結果?
這將是很好,如果你可以張貼驗證您的索賠代碼 - 例如組合是獨特的。如果兩個數據幀都包含唯一密鑰,則結果爲(3,500,21)。 –
@SanghackLee謝謝,我在Python中很綠。唯一性來自我對數據源和領域知識的瞭解。但任何想法如何從代碼驗證它?我想到了DataFrame.duplicated函數,但不知道如何使它在兩個字段的組合上工作。 – Della
也許...... print(len(set(zip(df1 ['device number'],df1 ['date']))))'和df2。 (其他方法可以在[這裏]找到(https://stackoverflow.com/questions/26977076/pandas-unique-values-multiple-columns) –