J'ai un dataframe df:
20060930 10.103 NaN 10.103 7.981
20061231 15.915 NaN 15.915 12.686
20070331 3.196 NaN 3.196 2.710
20070630 7.907 NaN 7.907 6.459
Ensuite, je veux sélectionner des lignes avec certains numéros de séquence indiqués dans une liste, supposons que voici [1,3], puis à gauche:
20061231 15.915 NaN 15.915 12.686
20070630 7.907 NaN 7.907 6.459
Comment ou quelle fonction peut faire cela?
vous pouvez également utiliser iloc:
Cela ne fonctionnera pas si les index de votre dataframe ne correspondent pas à l'ordre des lignes en raison de calculs antérieurs. Dans ce cas, utilisez:
... comme suggéré dans d'autres réponses.
la source
Une autre façon (bien que ce soit un code plus long) mais c'est plus rapide que les codes ci-dessus. Vérifiez-le en utilisant la fonction% timeit:
PS: vous trouvez la raison
la source
df.index.get_level_values(0).isin
pour multiindexPour les grands ensembles de données, il est efficace en mémoire de lire uniquement les lignes sélectionnées via le
skiprows
paramètre.Exemple
Cela va maintenant renvoyer un DataFrame à partir d'un fichier qui ignore toutes les lignes sauf 1 et 3.
Détails
À partir de la documentation :
Cette fonctionnalité fonctionne dans la version pandas 0.20.0+. Voir également le problème correspondant et un article connexe .
la source