Python extrait la méthode d'enregistrement d'emplacement spécifiée après le regroupement groupby

不言
Libérer: 2018-04-20 13:45:30
original
4833 Les gens l'ont consulté

Ce qui suit est une méthode Python pour extraire les enregistrements d'emplacement spécifiés après un regroupement groupby. Elle a une bonne valeur de référence et j'espère qu'elle sera utile à tout le monde. Venez jeter un œil ensemble

Lors de l'analyse et de la modélisation des données, la première chose que nous devons faire est de traiter les données et d'extraire les informations dont nous avons besoin. Ce qui suit présente une certaine utilisation de groupby pour rendre le traitement des données plus pratique.

Lorsque nous utilisons groupby pour extraire des informations, nous trouvons souvent des statistiques (max, min, var, etc.) des échantillons regroupés. Si maintenant nous voulons prendre le deuxième enregistrement et l’avant-dernier enregistrement de l’échantillon groupé, comment devons-nous procéder ? Nous pouvons extraire le premier et le dernier échantillons après les avoir regroupés en premier et en dernier. Mais si l’on souhaite prélever des échantillons à des endroits précis, il n’existe pas de fonction toute faite. Nous devons l'écrire nous-mêmes. Ci-dessous, je vais vous présenter comment implémenter les fonctions ci-dessus.

1) Introduction des données

La table d'action comporte 3 colonnes : userid, actionType et actionTime, qui représentent l'identifiant de l'utilisateur, le type de comportement de l'utilisateur et comportement respectivement. Le format spécifique est le suivant :

2) Opération de regroupement

a = action.groupby('userid') 
b = action.groupby('userid')['actionTime'] 
type(a) 
type(b)
Copier après la connexion

Après le regroupement, nous pouvons voir que les types de données de a et b sont DataFrameGroupBy et SeriesGroupBy

3) Obtenir le numéro Opération

①Deuxième/avant-dernière durée de fonctionnement par différents utilisateurs

action.groupby('userid')['actionTime'].apply(lambda i:i.iloc[1] if len(i)>1 else np.nan) 
action.groupby('userid')['actionTime'].apply(lambda i:i.iloc[-2] if len(i)>1 else np.nan)
Copier après la connexion

②Différents utilisateurs Le deuxième/ avant-dernier temps de fonctionnement d'un certain comportement

action[action['actionType']==2].groupby('userid')['actionTime'].apply(lambda i:i.iloc[1] if len(i)>1 else np.nan) 
action[action['actionType']==2].groupby('userid')['actionTime'].apply(lambda i:i.iloc[-2] if len(i)>1 else np.nan)
Copier après la connexion

PS : étant donné que certains utilisateurs ne peuvent avoir qu'un seul enregistrement, le prendre directement peut entraîner erreurs, donc j'utilise if pour porter un jugement en premier.

De cette façon, nous pouvons extraire des échantillons à n'importe quelle position des données groupées.

Recommandations associées :

Méthode Pandas pour obtenir la ligne avec la valeur maximale dans le groupe groupby


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!