0
votes

Extraire les 3 valeurs supérieures tout en filtrant plusieurs colonnes dans DataFrame (recensus.csv)

J'utilise des pandas et j'essaie d'interroger le jeu de données du recensement. Je veux extraire les 3 villes dans chaque état selon la population (du plus grand au plus petit). Je contemplé un bref instantané de l'ensemble de données à titre de référence

 Entrez la description de l'image ici

La sortie que je veux est quelque chose comme ça

Entrez la description de l'image ici

J'ai essayé d'utiliser Nlargest mais le problème que je suis confronté est que STNAME et CTYName sont des objets. La formule que j'ai essayée est la suivante: xxx

Un autre moyen de la questionner, j'ai essayé d'utiliser la méthode de groupeby: xxx

Mais cette formule m'a donné la valeur la plus importante au lieu de 3 plus grandes valeurs. Quelqu'un peut-il aider?


0 commentaires

3 Réponses :


0
votes

Essayez:

df.groupby ('STNAME'). Appliquer (Lambda GRP: GRP.NLARGESSE (3, COLONMES = 'CENSUS2010POP'))


0 commentaires

0
votes

Faites de CtyName comme indice, car ils sont uniques, puis utilisent Groupby STNAME et prenez 3 états populés à l'aide de la méthode NLARGEST.

df = df.set_index('CTYNAME')
df.groupby('STNAME')['CENSUS2010POP'].nlargest(3).reset_index()


1 commentaires

Ajoutez toujours des explications à vos réponses pour expliquer à l'OP et aux autres ce que vous résolvez.



0
votes

Une autre solution: xxx


0 commentaires