J'ai un fichier de données dans lequel je n'ai pas d'en-têtes ni de noms de colonnes. Je souhaite retourner la liste des index dans lesquels une certaine chaîne ('A' ou «E») existe sur la troisième rangée - ou la deuxième rangée si nous sommes 0-indexation. Donc, un jeu de données simple à 3 rangées, à 3 colonnes est le suivant: Je veux revenir [0,1] puisque les colonnes 0 et 1 contiennent 'A' ou "E '. Comment puis-je construire une requête de filtre pour accomplir mon objectif? P> p>
3 Réponses :
Cela peut ne pas être exactement ce que vous recherchez, mais je n'utiliserais pas une requête de filtre. Je ferais cela puisque vous connaissez déjà la position de l'index de la ligne d'intérêt est 2.
import pandas as pd
import numpy as np
df = pd.DataFrame({0: {0: 'March', 1: 2019, 2: 'A'},
1: {0: 'April', 1: 2019, 2: 'E'},
2: {0: 'May', 1: 2019, 2: 'F'}})
indices = np.where(df.iloc[2,:].isin(['A', 'E']))
Je voudrais essayer cela.
Pourquoi pas juste faire:
df[(df=='A') | (df=='E')].dropna(how='all').index
Cela ne reçoit pas les sites d'index que l'OP tente d'obtenir.
@ak_slick Désolé écrit une réponse du téléphone initialement.