0
votes

Pandas: Sélection des lignes par condition sur colonne et index

suppose que nous avons le fichier de données suivant: xxx

Comment puis-je sélectionner toutes les colonnes où col1! = 'A1' ou an! = 2011 < / code>?

si année ne serait pas un index, je pourrais le faire par xxx

Toutefois, comme année est un index, df.year lancerait un attributError.

Comment puis-je formuler la condition de l'index? Merci d'avance!


1 commentaires

Avez-vous absolument besoin d'utiliser ces colonnes comme index?


4 Réponses :


2
votes

Vous pouvez accéder à l'index par la méthode df.index.get_level_values ​​ code>, par ex. Vous pouvez gagner le résultat recherché par

In [29]: df[(df.col1 != 'a1') | (df.index.get_level_values('year') != 2011)]
Out[29]:
          col1 col2
year rank
2011 2      b1   b2
2012 1      c1   b2
     2      a1   c2


1 commentaires

Oh oui, c'est vrai. Ce comportement semble avoir changé il y a quelque temps, quand il n'a pas fonctionné pour comparer certaines séries indexées avec un tableau, je vais régler cela. Merci d'avoir souligné!



0
votes

Vous pouvez accéder à l'index via local et iLOC oloc . xxx

pour accéder à la fois l'année et l'index de rang ensemble, < Code> df.loc [2011,1] , qui produira A1 et A2


0 commentaires

1
votes

Vous pouvez utiliser la méthode requête () qui traite à la fois l'index et les colonnes du cadre sous forme de colonne: xxx

sortie: < Pré> xxx


0 commentaires

0
votes

Vous pouvez essayer

        col1    col2
year    rank        
2011    1   a1  a2
        2   b1  b2
2012    2   a1  c2


0 commentaires