Je veux trouver des lignes qui contiennent une chaîne, comme ceci:
DF[DF.col.str.contains("foo")]
Cependant, cela échoue car certains éléments sont NaN:
ValueError: impossible d'indexer avec un vecteur contenant des valeurs NA / NaN
Alors je recourt à l'obscurcissement
DF[DF.col.notnull()][DF.col.dropna().str.contains("foo")]
Y a-t-il un meilleur moyen?
a
était rempli à partir d'un CSV, et laa
colonne contenait la chaîne "nan".pandas
"intelligemment" converti cela enNaN
et commencé à me plaindre quand j'ai essayé de le fairedf.a.str.contains()
. Alors oui protip: assurez-vous de définir le type de colonneread_csv()
ou ensuite faites quelque chose commedf = df.where(pandas.notnull(df), "nan")
LOL