Mam listę, w której każda wartość jest listą krotek. na przykład jest to wartość, którą wydobywam dla klucza:jak agregować elementy listy krotek, jeśli krotki mają ten sam pierwszy element?
[('1998-01-20',8) , ('1998-01-22',4) , ('1998-06-18',8) , ('1999-07-15' , 7), ('1999-07-21',1) ]
Posortowałem również listę. teraz chcę agregowanie wartości tak:
[('1998-01' , 12) , ('1998-06' ,8) , ('1999-07',8)]
w pewnym sensie chcę grupy moich krotki pod względem miesiąca, podsumowując INTów dla każdego miesiąca razem, czytałem o GroupBy i myślę, że nie może mi pomóc z moją strukturą danych, ponieważ nie mam pojęcia, co mam napotkać na mojej liście, więc staram się znaleźć sposób, aby powiedzieć: zacznij od pierwszych elementów krotek, jeśli ja [0] [: 6] są równe: sum i [1]. ale mam trudności z wdrożeniem tego pomysłu.
for i in List :
if i[0][:6] # *problem* I don't know how to say my condition :
s=sum(i[1]) #?
Byłbym wdzięczny za wszelkie porady, ponieważ jestem nowym użytkownikiem Pythona!
dziękuję. To dobre rozwiązanie, ale gdy uruchomię go w zbiorze danych, mam wyniki takie jak: 2000-05 17 2000-05 17 2000-07 5 Próbuję zrozumieć, dlaczego 2000-05 jest powtarzany dwa razy. – Singu
@Sing i dint dostaję to, co mówisz, twoje dane mają duplikaty –
żadne moje dane nie mają duplikatów, uruchamiam je i uzyskuję właściwe wyniki, ale nie mam pojęcia, dlaczego dla każdego zapytania pierwsza linia wyników jest drukowana dwa razy ! kilka minut, a ja dam znać. dzięki! – Singu