Réécrivez le nœud d'enregistrement en double de SPSS Modeler avec Python. ① Identifiez le premier article acheté. (2) Identification de l'article le plus vendu dans la catégorie de produits

Les nœuds en double sont utilisés pour collecter les enregistrements en double dans SPSS Modeler. Je vais expliquer ce nœud en double et le réécrire avec des pandas Python.

Les nœuds dupliqués peuvent également être utilisés pour supprimer littéralement des enregistrements complètement dupliqués, mais lorsqu'ils sont utilisés dans Modeler, ils sont souvent utilisés pour obtenir le premier enregistrement d'un groupe.

Par conséquent, nous expliquerons ici l'utilisation des données POS avec ID dans les deux cas d'utilisation suivants. ① Identifiez le premier article acheté (2) Identification de l'article le plus vendu dans la catégorie de produits

0. données brutes

Effectuer pour les données POS suivantes avec ID. Nous utilisons des données PDV attachées à une pièce d'identité qui enregistrent qui (CUSTID) a acheté quand (SDATE) et quoi (PRODUCTID, classification principale du produit L_CLASS, classification intermédiaire du produit M_CLASS) et combien (SOUS-TOTAL).

Il y a 28 599 cas dans 6 domaines. image.png

1m. ① Identification du premier article acheté Version Modeler

Parfois, le premier achat vous donnera une idée de ce que vous achetez par la suite. Si vous pouvez voir les caractéristiques du produit que la personne qui a acheté le premier produit est susceptible d'être un bon client, et la personne qui a acheté un certain produit est susceptible de partir sans un deuxième achat, le produit qui est susceptible d'être un bon client Vous pouvez penser à des mesures telles que des étagères et un placement de bannières bien en vue.

Extrayons la première transaction d'achat pour chaque CUSTID à partir des données du PDV avec ID.

image.png

Définissez le mode du nœud d'enregistrement en double sur "Inclure uniquement le premier enregistrement de chaque groupe". Le champ clé pour le regroupement doit être CUSTID uniquement. Cela extraira un seul enregistrement pour un CUSTID. Spécifiez SDATE dans l'ordre croissant dans "Trier les enregistrements dans le groupe". Cela sélectionnera la transaction la plus ancienne pour chaque CUSTID.

image.png

Le résultat est le suivant. La première personne achetée avec CUSTID 100001 était BAG01 9937845. image.png

1p. ① Identification de la première version de pandas de l'article acheté

Utilisez les fonctions sort_values et drop_duplicates pour combiner les lignes dupliquées en une seule ligne dans pandas. Tout d'abord, triez par "CUSTID" avec sort_values dans l'ordre SDATE. Ensuite, drop_duplicates extrait uniquement la première ligne pour chaque CUSTID. Le but est de détecter les doublons uniquement avec «CUSTID» dans le sous-ensemble.

#Trier par CUSTID et SDATE
df_sorted=df.sort_values(['CUSTID','SDATE'])
#Extraire la première ligne pour chaque CUSTID
df_sorted.drop_duplicates(subset='CUSTID')

image.png

2m. (2) Identification de l'article le plus vendu dans la catégorie de produit Version Modeler

Les nœuds d'enregistrement en double sont souvent utilisés avec les nœuds d'agrégation d'enregistrements pour extraire le numéro un ou le pire des enregistrements dans les résultats de l'agrégation.

Ici, nous essaierons d'extraire les produits les plus vendus dans les principales catégories de produits SAC, COSMÉTIQUE et CHAUSSURES.

image.png

Tout d'abord, calculez le total de SOUS-TOTAL en regroupant par L_CLASS et PRODUCTID dans l'agrégation d'enregistrements. image.png

Le montant total des ventes pour chaque produit est maintenant calculé. image.png

Ensuite, définissez ce qui suit sur le nœud dupliqué. Réglez le mode sur "Inclure uniquement le premier enregistrement de chaque groupe". Le champ clé pour le regroupement doit être L_CLASS uniquement. Cela extraira un seul enregistrement pour une L_CLASS. Spécifiez SUBTOTAL_Sum dans l'ordre croissant dans "Trier les enregistrements dans le groupe". Avec cela, le produit avec les ventes les plus élevées est sélectionné pour chaque L_CLASS.

image.png

Le résultat est le suivant. Le produit BAG le plus vendu était le 9900307, qui s'est vendu à 1 781 615 yens.

image.png

2p. (2) Identification de l'article le plus vendu dans la catégorie de produits version pandas

Utilisez les fonctions groupby, sort_values et drop_duplicates pour extraire le numéro un des résultats agrégés avec pandas. Le processus est le même que l'utilisation du nœud d'agrégation et du nœud d'enregistrement en double dans Modeler.

Tout d'abord, groupez par L_CLASS et PRODUCTID pour calculer le total de SOUS-TOTAL. Ensuite, triez par "L_CLASS" dans sort_values par ordre décroissant de "SOUS-TOTAL". Ensuite, drop_duplicates extrait uniquement la première ligne pour chaque L_CLASS.

#Calcul des ventes totales par classification principale et ID PRODUIT
df_sum=df[['L_CLASS','PRODUCTID','SUBTOTAL']].groupby(['L_CLASS','PRODUCTID'],as_index=False).sum()
#Trier par ventes dans les principales catégories
df_sum_sorted=df_sum.sort_values(['L_CLASS','SUBTOTAL'],ascending=[True,False])
#Extraire la première ligne du classement majeur
df_sum_sorted.drop_duplicates(['L_CLASS'])

J'ai pu extraire comme suit. image.png

3. Échantillon

L'échantillon est placé ci-dessous.

courant https://github.com/hkwd/200611Modeler2Python/raw/master/distinct/distinct.str notebook https://github.com/hkwd/200611Modeler2Python/blob/master/distinct/distinct.ipynb Les données https://raw.githubusercontent.com/hkwd/200611Modeler2Python/master/data/sampletranDEPT4en2019S.csv

■ Environnement de test Modeler 18.2.1 Windows 10 64bit Python 3.6.9 pandas 0.24.1

4. Informations de référence

Noeud d'enregistrement en double https://www.ibm.com/support/knowledgecenter/ja/SS3RA7_18.2.1/modeler_mainhelp_client_ddita/clementine/distinct_settingstab.html

Recommended Posts

Réécrivez le nœud d'enregistrement en double de SPSS Modeler avec Python. ① Identifiez le premier article acheté. (2) Identification de l'article le plus vendu dans la catégorie de produits
Réécrivez le nœud de reconfiguration de SPSS Modeler avec Python. Agrégation par catégorie de produits achetés
Réécrivez le nœud d'ajout d'enregistrement de SPSS Modeler avec Python.
Réécrire le nœud de filtre de SPSS Modeler avec Python
Réécrire le nœud d'échantillonnage de SPSS Modeler avec Python ①: N premiers cas, échantillonnage aléatoire
Réécrire le nœud d'échantillonnage de SPSS Modeler avec Python (2): échantillonnage en couches, échantillonnage en grappes