這個問題看起來超級簡單,但我就是想不通。
我有以下資料框:
watched_df = pd.DataFrame([['Love Death Robots', '2016-01-29 14:04:22', 'Anna'],
['James Bond', '2016-02-29 14:04:22', 'Anna'],
['Lord of the Rings', '2016-09-29 14:04:22', 'BoB'],
['The Hobbit', '2016-10-29 14:04:22', 'Anna'],
['Beauty and the Beast', '2016-06-29 14:04:22', 'BoB']],
columns=['Title', 'Date', 'Profile_Name'])
watched_df.head()
對于每個用戶,我想知道“Profile_Name”觀看的第一部電影的“標題”是什么,以及它是在什么“日期”。
所以想要的結果是:
wanted_df = pd.DataFrame([['Love Death Robots', '2016-01-29 14:04:22', 'Anna'],
['Beauty and the Beast', '2016-06-29 14:04:22', 'BoB']],
columns=['Title', 'Date', 'Profile_Name'])
wanted_df.head()
我設法獲得了一個由“Profile_Name”和各自最舊日期索引的資料框。但我無法將“標題”添加到資料框
uj5u.com熱心網友回復:
首先需要將“Date”的資料型別改為datetime:
watched_df['Date'] = pd.to_datetime(watched_df['Date'])
然后您只需要先按日期排序并通過將其保留在第一行來洗掉重復項:
watched_df.sort_values('Date').drop_duplicates(['Profile_Name'], keep='first')
這應該會給出您正在尋找的結果。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/369914.html
