Seite 1 von 1
Wie kann man ein Array von Arrays in ein Wörterbuch mit einem Index umwandeln?
Verfasst: Dienstag 18. Juli 2017, 10:27
von AntoineP
Code: Alles auswählen
[[{'count': 6L, 'item_id': 11313}, {'count': 6L, 'item_id': 11348}, {'count': 1L, 'item_id': 11359}],[{'count': 1L, 'item_id': 11432}, {'count': 1L, 'item_id': 11438}, {'count': 4L, 'item_id': 11311}]]
Ich möchte ein dictionnary mit einem Index für jeden array [{'count':...,'item_id':...},{'count':...,'item_id':...}...].
Für die moment, ich mache diese code :
Code: Alles auswählen
def queryListShaping(self,liste,column):
"""
transform lists of js data ton a list of dataframes
"""
print "liste"
print liste
dictionnary = {}
for i,subList in enumerate(liste):
dictionnary[i]=pd.DataFrame(subList)
dictionnary[i]=dictionnary[i].sort_values("count",ascending = False)
dictionnary[i][column]=dictionnary[i][column].fillna(0).astype(int)
print "i"
print i
return dictionnary
Aber funkionert nicht und gruppiere alles in einem gleich dictionnary :
Code: Alles auswählen
self.group_content_reactions_list
{0: count item_id
23 6 11313
12 6 11348
32 1 11359
41 1 11432
1 1 11438
19 4 11311
Re: Wie kann man ein Array von Arrays in ein Wörterbuch mit einem Index umwandeln?
Verfasst: Dienstag 18. Juli 2017, 12:15
von Melewo
Für mich sieht das auf dem ersten Blick so aus, als könnte man die Werte von item_id einfach als Schlüssel verwenden und diesen die Werte von count zuweisen. Was aber daran liegen könnte, dass ich nicht wirklich verstehe, was Du im Endergebnis erreichen oder auswerten möchtest.
Re: Wie kann man ein Array von Arrays in ein Wörterbuch mit einem Index umwandeln?
Verfasst: Dienstag 18. Juli 2017, 12:32
von DeaD_EyE
Müsste so funktionieren:
Code: Alles auswählen
import itertools
a = [[{'count': 6, 'item_id': 11313},
{'count': 6, 'item_id': 11348},
{'count': 1, 'item_id': 11359}],
[{'count': 1, 'item_id': 11432},
{'count': 1, 'item_id': 11438},
{'count': 4, 'item_id': 11311}]]
list(itertools.chain(*a))
Ausgabe:
Code: Alles auswählen
[{'count': 6, 'item_id': 11313},
{'count': 6, 'item_id': 11348},
{'count': 1, 'item_id': 11359},
{'count': 1, 'item_id': 11432},
{'count': 1, 'item_id': 11438},
{'count': 4, 'item_id': 11311}]
Re: Wie kann man ein Array von Arrays in ein Wörterbuch mit einem Index umwandeln?
Verfasst: Dienstag 18. Juli 2017, 13:06
von BlackJack
Ich würde aus der letzten Zeile das hier machen:
Re: Wie kann man ein Array von Arrays in ein Wörterbuch mit einem Index umwandeln?
Verfasst: Dienstag 18. Juli 2017, 14:21
von AntoineP
Danke für seinen antworter aber, ich misspoke, Ich habe auf diese Form gewartet
Code: Alles auswählen
self.group_content_reactions_list
{0: count item_id
23 6 11313
12 6 11348
32 1 11359
1:
41 1 11432
1 1 11438
19 4 11311
Re: Wie kann man ein Array von Arrays in ein Wörterbuch mit einem Index umwandeln?
Verfasst: Dienstag 18. Juli 2017, 14:32
von AntoineP
Ich habe meinen Fehler gefunden : die return war in die for-Schleife. Es hätte nachher sein sollen :
Code: Alles auswählen
for i,subList in enumerate(liste):
dictionnary[i]=pd.DataFrame(subList)
dictionnary[i]=dictionnary[i].sort_values("count",ascending = False)
dictionnary[i][column]=dictionnary[i][column].fillna(0).astype(int)
return dictionnary