Pandas: Vérifier si la ligne existe avec certaines valeurs
J'ai un deux dimensions (ou plus) les pandas DataFrame comme ceci:
>>> import pandas as pd
>>> df = pd.DataFrame([[0,1],[2,3],[4,5]], columns=['A', 'B'])
>>> df
A B
0 0 1
1 2 3
2 4 5
Maintenant, supposons que j'ai un tableau numpy comme np.array([2,3])
et que vous souhaitez vérifier si il y a une ligne dans df
qui correspond avec le contenu de mon tableau. Ici, la réponse est évidemment vrai, mais par exemple. np.array([1,2])
doit retourner false comme il n'y a pas de ligne avec les deux 1 dans la colonne A et 2 dans la colonne B.
Sûr que c'est facile, mais ne pas le voir en ce moment.
il est à la fois une ligne et d'une colonne avec 1 , 2, afin que voulez-vous dire qu'il n'y en a pas?
Avez-vous essayé quelque chose comme df.isin([1,2])?? Il sera de sortie le booléens, vous devez trouver les lignes qui correspondent totalement et partiellement
Mais il n'y a aucune ligne qui contient un 1 dans la colonne A et 2 dans la colonne B. je suis à la recherche de la sémantique comme la clause where en SQL.
Avez-vous essayé quelque chose comme df.isin([1,2])?? Il sera de sortie le booléens, vous devez trouver les lignes qui correspondent totalement et partiellement
Mais il n'y a aucune ligne qui contient un 1 dans la colonne A et 2 dans la colonne B. je suis à la recherche de la sémantique comme la clause where en SQL.
OriginalL'auteur Robin | 2014-07-15
Vous devez vous connecter pour publier un commentaire.
S'avère il est vraiment facile, la suite fait le travail ici:
Peut-être que quelqu'un arrive avec une meilleure solution qui permet directement de passage dans le tableau et la liste des colonnes de match.
Notez que les parenthèses autour de
df['A'] == 2
ne sont pas en option depuis le&
opérateur se lie aussi solide que les==
opérateur.OriginalL'auteur Robin
un moyen plus facile est:
c'est trivial. remplacer
df
avecdf[df.columns[:2]]
OriginalL'auteur acushner
Si vous aussi vous voulez retourner l'index où les matchs s'est produite:
OriginalL'auteur sparrow