[PYTHON] Ändern Sie den Datenrahmen der Pandas-Kaufdaten (ID x Produkt) in ein Wörterbuch

Versuchen Sie, die Kaufdaten in ein Wörterbuch zu ändern. Verwenden Sie nicht to_dict

Es schien nicht mit to_dict zu funktionieren, also habe ich es selbst versucht. Der Grund war, dass ich Kaufdaten durch Co-Filterung verarbeiten wollte, jedoch mit einem Datenrahmen Es schien nicht zu funktionieren. Außerdem möchte ich die Empfehlungslogik wie bei der kollektiven Intelligenzprogrammierung ausprobieren. Ich wollte die Daten im vorliegenden Datenrahmen verwenden, indem ich sie irgendwie konvertierte.

# coding: utf-8

import pandas as pd
from collections import defaultdict

df = pd.DataFrame({'id':['a','a','b','b','c',], 'shouhin':['x', 'y', 'y','z', 'x']})

Angenommen, Sie haben die folgenden Daten

  id shouhin
0  a       x
1  a       y
2  b       y
3  b       z
4  c       x

Der Zweck besteht darin, dies in ein Wörterbuch wie das folgende zu ändern.

{'a': ['y', 'x'], 'b': ['y', 'z'], 'c': ['x']}

Erstellen Sie zunächst ein Wörterbuch mit defaultdict. Rufen Sie dann jede Zeile mit df.values ab und erstellen Sie ein Wörterbuch mit verschachtelten Elementen. (df.values gibt numpy.array zurück)

tempdic = defaultdict(dict)

for d in df.values:
    
    tempdic[d[0]][d[1]] = 1.0     #Jeder Wert ist akzeptabel
    

Dann können Sie Folgendes tun.

dic = {k: tempdic[k].keys() for k in tempdic}

Wenn man sich das Dic ansieht, ist es wie erwartet

{'a': ['y', 'x'], 'c': ['x'], 'b': ['y', 'z']}


Wenn Sie set verwenden, erhalten Sie gängige Produkte und es ist einfach, den Jaccard-Koeffizienten zu berechnen.

{'y'}```


 Auch wenn Sie den ersten Teil nicht auf df.values setzen, können Sie die Elemente jeder Zeile mit df.iloc [Zeilennummer] schleifen und abrufen.
 Es ist möglich, aber in diesem Fall ist die Geschwindigkeit viel langsamer.
 Beim Kauf von Daten denke ich, dass die Datenmenge ziemlich groß ist, daher ist es schwierig, wenn sie hier langsam ist.

 Ich denke auch, dass es eine Möglichkeit gibt, alles auf einmal mit while und if zu erledigen, aber dies gibt auch der Geschwindigkeit Priorität.
 Ich versuche, eine solche Methode nicht anzuwenden.














Recommended Posts

Ändern Sie den Datenrahmen der Pandas-Kaufdaten (ID x Produkt) in ein Wörterbuch
Ich möchte einem Pandas-Datenrahmen eine group_id geben
[Los] Erstellen Sie einen CLI-Befehl, um die Erweiterung des Bildes zu ändern
So überprüfen Sie die Speichergröße eines Wörterbuchs in Python
So ermitteln Sie die Speicheradresse des Pandas-Datenrahmenwerts
[Spark Data Frame] Ändern Sie eine Spalte von horizontal in vertikal (Scala).
Teilen und Verarbeiten eines Datenrahmens mithilfe der Groupby-Funktion
Skript zum Ändern der Beschreibung von Fasta
Ändern Sie nicht die Reihenfolge der Spalten, wenn Sie Pandas-Datenrahmen verketten.
Verwenden wir Python, um die Häufigkeit der in einem Datenrahmen enthaltenen Binärdaten in einem einzelnen Balkendiagramm darzustellen.
Wie man eine Benutzergruppe mit Slack-Benachrichtigung erwähnt, wie man die ID einer Benutzergruppe überprüft
[Circuit x Python] So ermitteln Sie die Übertragungsfunktion eines Schaltkreises mit Lcapy
Link zu den Datenpunkten des von jupyterlab & matplotlib erstellten Diagramms
[Einführung in Python] So erhalten Sie den Datenindex mit der for-Anweisung
So berechnen Sie die Volatilität einer Marke
Ändern Sie den Dezimalpunkt der Protokollierung von, nach.
Machen Sie Urlaubsdaten mit Pandas zu einem Datenrahmen
Versuchen Sie, mit matplotlib aus den Daten von "Schedule-kun" eine Kampfaufzeichnungstabelle zu erstellen.
Ermitteln Sie die maximale Anzahl von Zeichen in mehrzeiligem Text, die in einem Datenrahmen gespeichert sind
So ändern Sie das generierte Bild von GAN in ein qualitativ hochwertiges Bild nach Ihren Wünschen
Ich habe versucht, einen Pandas-Datenrahmen zu erstellen, indem ich mit Python Informationen zum Lebensmittelrückruf abgekratzt habe
Ein Memo zum visuellen Verstehen der Achse von Pandas.Panel
So schreiben Sie einen Listen- / Wörterbuchtyp von Python3
Ich habe in Python ein Programm erstellt, das die 1-Minuten-Daten von FX auf eine beliebige Zeit (1 Stunde usw.) ändert.
Schritte zur Berechnung der Wahrscheinlichkeit einer Normalverteilung
Eine Geschichte über das Problem, 3 Millionen ID-Daten in einer Schleife zu verarbeiten
Berechnen Sie das Produkt von Matrizen mit einem Zeichenausdruck?
Python Hinweis: Das Rätsel, einer Variablen eine Variable zuzuweisen
Der Standardstil (CSS) von Pandas-Datenrahmen, die von der Anzeige in Google Colab ausgegeben werden, wurde geändert
Ruft den Wert eines bestimmten Schlüssels bis zum angegebenen Index der Wörterbuchliste in Python ab
Wenn sich eine Zeichenfolge einer bestimmten Reihe im Schlüssel des Wörterbuchs befindet, wird die Zeichenfolge in den Wert des Wörterbuchs konvertiert.
Darstellung der Verteilung der Bakterienzusammensetzung aus Qiime2-Analysedaten in einem Box-Whisker-Diagramm
Beispiele und Gegenmaßnahmen für "Ein Wert versucht, auf einer Kopie eines Slice aus einem Datenrahmen festgelegt zu werden." Warnung bei Pandas
[Python] Ändern Sie die Cache-Steuerung von Objekten, die in den Cloud-Speicher hochgeladen wurden
[Ubuntu] So löschen Sie den gesamten Inhalt des Verzeichnisses
Mit den Daten von COVID-19 wurde ein Netzwerkdiagramm erstellt.
[Python] Ändern Sie den Namen der Bilddatei in eine Seriennummer
Holen Sie sich die ID einer GPU mit geringer Speichernutzung
Ändern Sie das Standardausgabeziel in eine Datei in Python
Eine Einführung in die Objektorientierung: Ändern Sie den internen Status eines Objekts
Einfallsreichtum beim speichersparenden Umgang mit Daten mit Pandas
Ich habe eine Funktion erstellt, um das Modell von DCGAN zu überprüfen
Kombinieren Sie Listen zu einem DataFrame mit Pandas
Erstellen Sie eine Python-Umgebung und übertragen Sie Daten auf den Server
Die Geschichte des Kopierens von Daten von S3 auf Googles TeamDrive
So ermitteln Sie den Skalierungskoeffizienten eines bipolaren Wavelets
Ändern Sie die Lautstärke von Pepper entsprechend der Umgebung (Ton).
Konvertieren Sie die vorliegenden Bilddaten (png) in ein .pbm-Bild
Vergleich der Datenrahmenbehandlung in Python (Pandas), R, Pig
Eine Sammlung von Methoden, die beim Aggregieren von Daten mit Pandas verwendet werden
So erhalten Sie einen Überblick über Ihre Daten in Pandas
[Pytorch] Verwendung von einsum zur Erleichterung des Matrixprodukts (Tensor)
Die minimale Methode, die beim Aggregieren von Daten mit Pandas zu beachten ist
Gibt es ein Geheimnis in der Häufigkeit der Umfangszahlen?
So verbinden Sie den Inhalt der Liste mit einer Zeichenfolge
Ich habe die Daten von Raspberry Pi an GCP gesendet (kostenlos)
Versuchen Sie, Merkmale von Sensordaten mit CNN zu extrahieren
Verwalten Sie die Überlappung, wenn Sie ein Streudiagramm mit einer großen Datenmenge zeichnen (Matplotlib, Pandas, Datashader).
[PyQt x pySerial] Zeigen Sie im Kombinationsfeld eine Liste der mit dem PC verbundenen COM-Ports an