Je dois développer une seule ligne de ma base de données Pandas entre deux rangées en divisant la colonne score
(contenant les résultats de correspondance) en fonction des espaces.Pandas dataframe: Extension de la colonne en rangées plus numérotation incrémentale
C'est ce que les données ressemble
A B score
1 2 6-1 6-2
3 4 6-4 4-6 6-3
Pour atteindre l'objectif je l'approche de here.
Avec l'approche adaptant légèrement, mon dataframe ressemble à ceci:
A B score sets
1 2 6-1 6-2 6-1
1 2 6-1 6-2 6-2
3 4 6-4 4-6 6-3 6-4
3 4 6-4 4-6 6-3 4-6
3 4 6-4 4-6 6-3 6-3
Cependant, je voudrais aussi avoir une autre colonne supplémentaire qui représente le nombre de l'ensemble par match. C'est comme un compte cumulatif des ensembles par match. Ma question est, comment la solution liée ci-dessus peut être modifié afin d'obtenir le résultat souhaité, qui se présente comme suit:
A B score sets setnumber
1 2 6-1 6-2 6-1 1
1 2 6-1 6-2 6-2 2
3 4 6-4 4-6 6-3 6-4 1
3 4 6-4 4-6 6-3 4-6 2
3 4 6-4 4-6 6-3 6-3 3
Je pense que quelque part dans les lignes de code suivant une adaptation qui doit être fait, mais je ne pouvais » t comprendre, mais, comment cela devrait fonctionner:
s = df['score'].str.split(' ').apply(pd.Series, 1).stack()
s.index = s.index.droplevel(-1) # to line up with df's index
Je viens d'arriver à cette solution. Y a-t-il une différence? 'df ['setnumber'] = df.groupby (['A', 'B']). cumcount() + 1' – beta
Pas grand chose,' assign' renvoie une copie, votre méthode la définit à 'df'. – Zero
super, merci. acceptera si possible. – beta