我有一個數據集,其中每個記錄包含用戶推文日期,他們的屏幕名稱,他們的追隨者數量和他們的朋友數。用戶可以在整個數據集中多次列出,並且在不同的時間以及在不同的時間與不同的追隨者/朋友計數。我想要做的是獲得列表中的唯一用戶列表以及他們的最近的關注者/朋友數。我不想僅僅刪除他們的屏幕名稱,但我想要他們最近的值。Python - 如何通過保留最近的元組來重複刪除元組列表。
這是我的數據目前看起來像重複值
In [14]: data
Out[14]:
[(datetime.datetime(2014, 11, 21, 1, 16, 2), u'AlexMatosE', 773, 560),
(datetime.datetime(2014, 11, 21, 1, 17, 6), u'hedofthebloom', 670, 618),
(datetime.datetime(2014, 11, 21, 1, 18, 8), u'hedofthebloom', 681, 615),
(datetime.datetime(2014, 11, 21, 1, 19, 1), u'jape2116', 263, 540),
(datetime.datetime(2014, 11, 21, 1, 19, 3), u'_AlexMatosE', 790, 561),
(datetime.datetime(2014, 11, 21, 1, 19, 5), u'Buffmuff69', 292, 270),
(datetime.datetime(2014, 11, 21, 1, 20, 1), u'steveamodu', 140, 369),
(datetime.datetime(2014, 11, 21, 1, 20, 9), u'jape2116', 263, 540),
(datetime.datetime(2014, 11, 21, 1, 21, 3), u'chighway', 363, 767),
(datetime.datetime(2014, 11, 21, 1, 22, 9), u'jape2116', 299, 2000)]
這是我如何能得到獨特的用戶數據
In [15]: users = set(sorted([line[1] for line in data]))
現在我需要找出如何獲取數據集中每個唯一用戶的最新最近值組。我不確定一個for-loop是否是去這裏的最佳方式,或者如果別的東西會更好。
In [18]: most_recent_user_data = []
....: for line in data:
....: if line[1] in users:
....: ...
....: ...
....: ...
....: most_recent_user_data.append((line[1], line[2], line[3]))
最終,我想每一個獨特的用戶結束了一次,他們最近的追隨者/朋友看重
In [19]: most_recent_user_data
Out[19]:
(u'hedofthebloom', 681, 615),
(u'_AlexMatosE', 790, 561),
(u'Buffmuff69', 292, 270),
(u'steveamodu', 140, 369),
(u'chighway', 363, 767),
(u'jape2116', 299, 2000)]
您是否嘗試過按用戶進行分組,按時間戳排序和gett最近的一個? – chapelo 2014-12-19 02:33:25