0
votes

Utilisation de Python pour trouver des matrices de correspondance et une combinaison dans un tableau

Je voudrais utiliser Python pour trouver les réseaux correspondants tels que [4012630, 0.07575758] et [4012630, 0.5671642] . Ensuite, je voudrais les combiner en 1 tableau et ajouter les décimales. Donc, il deviendrait [4012630, 0.64292178] .

objectif est de convertir ce tableau: xxx

dans ce tableau: xxx


2 commentaires

Dupliqué possible de Comment faire un ensemble de listes


Utilisation de GroupBy et d'appliquer la méthode pour résumer les valeurs pourraient également être une option Stackoverflow.com/Questtions/39922986/pandas-group-by-and-sum


4 Réponses :


0
votes

Je propose la solution suivante. Tout d'abord, découvrez les labels uniques. Ensuite, créez la liste des résultats et initialisez la somme à 0. Ensuite, puis, tout élément de la liste d'entrée et ajoutez la valeur à la corbeille correspondante.

lst = [[4012630, 0.07575758],
[4012618, 0.014925373],
[4012630, 0.5671642],
[4012624, 0.029850746],
[4012628, 0.41791046],
[4012624, 0.07462686],
[4012628, 0.04477612],
[4012636, 0.2820513]]

def sumlist(lst):
    unique = list(set([x[0] for x in lst]))
    result = [[x,0] for x in unique]
    for i, value in lst:
        ind = unique.index(i)
        result[ind][1] += value
    return result


1 commentaires

Merci! Solution vraiment simple et je pouvais le comprendre complètement!



-1
votes
from collections import defaultdict
def sum_func(l:list):
    temp1 = defaultdict(list)
    result = []
    for el in l:
        temp1[el[0]].append(el[1])
    for k, v in temp1.items():
        result.append([k, sum(v)])
    return result

0 commentaires

1
votes

Il existe de nombreuses façons de résoudre ce problème, voici ma solution de complexité de temps O (n): xxx

alors vous pouvez appeler cette fonction comme: xxx


0 commentaires

0
votes

Vous pouvez utiliser la structure de données de dictionnaire pour la tâche suivante.

Voici comment je l'ai utilisé - p> xxx pré>

la sortie du code est - p>

{4012630: 0.64292178, 
4012618: 0.014925373, 
4012624: 0.104477606, 
4012628: 0.46268657999999996, 
4012636: 0.2820513}


0 commentaires