Changer le bloc de données des données d'achat de pandas (produit ID X) en dictionnaire

Essayez de remplacer les données d'achat par un dictionnaire. ne pas utiliser to_dict

Cela ne semblait pas fonctionner avec to_dict, alors je l'ai essayé moi-même. La raison était que je voulais traiter les données d'achat par co-filtrage, mais avec une trame de données Cela ne semblait pas fonctionner. Aussi, j'aimerais essayer la logique de recommandation comme dans la programmation d'intelligence collective. Je voulais utiliser les données dans la trame de données à portée de main en les convertissant d'une manière ou d'une autre.

# 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']})

Supposons que vous ayez les données suivantes

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

Le but est de changer cela en un dictionnaire comme celui ci-dessous.

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

Tout d'abord, créez un dictionnaire avec defaultdict. Ensuite, récupérez chaque ligne avec df.values et créez un dictionnaire avec des éléments imbriqués. (df.values renvoie numpy.array)

tempdic = defaultdict(dict)

for d in df.values:
    
    tempdic[d[0]][d[1]] = 1.0     #Toute valeur est acceptable
    

Ensuite, vous pouvez effectuer les opérations suivantes.

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

En regardant le dic, c'est comme prévu

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


Si vous utilisez set, vous pouvez obtenir des produits courants et il est facile de calculer le coefficient jaccard.

{'y'}```


 Même si vous ne définissez pas la première partie sur df.values, vous pouvez faire une boucle et obtenir les éléments de chaque ligne avec df.iloc [numéro de ligne].
 C'est possible, mais dans ce cas, la vitesse est beaucoup plus lente.
 Dans le cas de l'achat de données, je pense que la quantité de données est assez grande, donc c'est difficile si c'est lent ici.

 De plus, je pense qu'il existe un moyen de tout faire à la fois en utilisant while et if, mais cela donne également la priorité à la vitesse.
 J'essaye de ne pas utiliser une telle méthode.














Recommended Posts

Changer le bloc de données des données d'achat de pandas (produit ID X) en dictionnaire
Je veux donner un group_id à une trame de données pandas
[Go] Créez une commande CLI pour changer l'extension de l'image
Comment vérifier la taille de la mémoire d'un dictionnaire en Python
Comment trouver l'adresse mémoire de la valeur de la trame de données Pandas
[Spark Data Frame] Changer une colonne de l'horizontale à la verticale (Scala)
Comment diviser et traiter une trame de données à l'aide de la fonction groupby
Script pour changer la description de fasta
Ne changez pas l'ordre des colonnes lors de la concaténation des trames de données pandas.
Utilisons Python pour représenter la fréquence des données binaires contenues dans une trame de données dans un graphique à barres unique.
Comment mentionner un groupe d'utilisateurs avec une notification de mou, comment vérifier l'ID d'un groupe d'utilisateurs
[Circuit x Python] Comment trouver la fonction de transfert d'un circuit en utilisant Lcapy
Lien vers les points de données du graphe créé par jupyterlab & matplotlib
[Introduction à Python] Comment obtenir l'index des données avec l'instruction for
Comment calculer la volatilité d'une marque
Modifiez le point décimal de la journalisation de, à.
Transformez les données de vacances en une trame de données avec les pandas
Essayez de créer une table d'enregistrement de bataille avec matplotlib à partir des données de "Schedule-kun"
Découvrez le nombre maximum de caractères dans un texte multiligne stocké dans un bloc de données
Comment changer l'image générée de GAN en une image de haute qualité à votre goût
J'ai essayé de créer un cadre de données pandas en grattant les informations de rappel d'aliments avec Python
Un mémo pour comprendre visuellement l'axe des pandas.
Comment écrire un type liste / dictionnaire de Python3
J'ai créé un programme en Python qui change les données de 1 minute de FX en une heure arbitraire (1 heure, etc.)
Étapes pour calculer la probabilité d'une distribution normale
Une histoire sur la difficulté à traiter en boucle 3 millions de données d'identification
Calculer le produit des matrices avec une expression de caractère?
Note Python: Le mystère de l'attribution d'une variable à une variable
Modification du style par défaut (CSS) des cadres de données pandas générés par affichage dans Google Colab
Obtenir la valeur d'une clé spécifique jusqu'à l'index spécifié de la liste de dictionnaires en Python
Lorsqu'une chaîne de caractères d'une certaine série se trouve dans la clé du dictionnaire, la chaîne de caractères est convertie en valeur du dictionnaire.
Comment représenter la distribution de la composition bactérienne à partir des données d'analyse Qiime2 dans un diagramme de moustaches
Exemples et contre-mesures pour "Une valeur tente d'être définie sur une copie d'une tranche d'une trame de données." Avertissement chez les pandas
[Python] Modifier le contrôle du cache des objets téléchargés sur Cloud Storage
[Ubuntu] Comment supprimer tout le contenu du répertoire
Un diagramme de réseau a été créé avec les données du COVID-19.
[python] Remplacez le nom du fichier image par un numéro de série
Obtenez l'identifiant d'un GPU avec une faible utilisation de la mémoire
Changer la destination de sortie standard en un fichier en Python
Une introduction à l'orientation des objets - changeons l'état interne d'un objet
Ingéniosité pour gérer les données avec Pandas de manière à économiser la mémoire
J'ai fait une fonction pour vérifier le modèle de DCGAN
Combinez des listes dans un DataFrame avec des pandas
Créer un environnement Python et transférer des données vers le serveur
L'histoire de la copie de données de S3 vers TeamDrive de Google
Comment trouver le coefficient de mise à l'échelle d'une ondelette bipolaire
Changer le volume de Pepper en fonction de l'environnement environnant (son)
Convertissez les données d'image (png) à portée de main en une image .pbm
Comparaison de la gestion des trames de données en Python (pandas), R, Pig
Une collection de méthodes utilisées lors de l'agrégation de données avec des pandas
Comment obtenir un aperçu de vos données dans Pandas
[Pytorch] Utilisation de l'einsum pour faciliter le produit de matrice (tenseur)
La méthode minimale à retenir lors de l'agrégation de données avec Pandas
Y a-t-il un secret dans la fréquence des nombres de rapport de circonférence?
Comment connecter le contenu de la liste dans une chaîne de caractères
J'ai envoyé les données de Raspberry Pi à GCP (gratuit)
Essayez d'extraire les caractéristiques des données de capteur avec CNN
Gérez le chevauchement lors du dessin d'un diagramme de dispersion avec une grande quantité de données (Matplotlib, Pandas, Datashader)
[PyQt x pySerial] Afficher une liste des ports COM connectés au PC dans la liste déroulante