[英]Python Pandas Merge only finds one match each
我正在嘗試合並兩個數據框,一個具有用戶每月活動,另一個具有月租費用,並且兩個都有ID號。 我想在每月的行中合並活動和費用。
all_dat = pd.merge(activity,fees,on=[id,year_month])
當我嘗試將其加入ID和時間(datetime64)時,結果僅具有每個用戶的第一個匹配項,日期為2017-1-1。 即使我在兩個數據框中都能清楚地找到許多相同的日期時間,但合並后的日期時間只給我2017-1-1的行。
> print(set(all_dat[year_month]))
{Timestamp('2017-01-01 00:00:00')}
費用框架如下所示:
USER_ID Name Time Fees
123 John 2016-12-01 300
123 John 2017-01-01 500
123 John 2017-02-01 400
活動看起來像這樣:
USER_ID Name Time Activity
123 John 2017-01-01 20
123 John 2017-01-02 30
由於合並,我想得到像這樣的東西:
USER_ID Name Time Activity Fees
123 John 2017-01-01 20 500
123 John 2017-01-02 30 400
但是我只有第一場比賽:
USER_ID Name Time Activity Fees
123 John 2017-01-01 20 500
我不認為這是dtype問題,可能出了什么問題?
我發現了問題,每個數據幀中的月份和日期都是相反的。 由於1月1日是01-01,因此它是唯一獲得任何比賽的人。 確保您的日期時間格式是統一的,伙計們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.