У меня есть набор данных, в котором каждая запись содержит дату, когда пользователь чирикал, их имя экрана, подсчет их последователей и их друг. Пользователи могут быть перечислены несколько раз на протяжении всего набора данных и в разное время, а также с разными подсчетами следящих/друзей в эти различные моменты времени. То, что я хотел бы сделать, - это получить уникальный список пользователей в списке и их последних счетчиков/друзей. Я не хочу просто дублировать их имя, но вместо этого хочу получить самые последние значения.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]))
Теперь мне нужно выяснить, как получить набор значений MOST RECENT для каждого уникального пользователя в наборе данных. Я не уверен, что для цикла это лучший способ пойти сюда, или если что-то еще будет лучше.
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)]
Вы пробовали группировку по пользователю, сортируя по tim estamp, и получить самую последнюю? – chapelo