Jestem pewien, że jest na to oczywisty sposób, ale nie mogę teraz wymyślić nic sprytnego.
Zasadniczo zamiast zgłaszać wyjątek, chciałbym uzyskać True
lub False
sprawdzić, czy istnieje wartość w df
indeksie pand .
import pandas as pd
df = pd.DataFrame({'test':[1,2,3,4]}, index=['a','b','c','d'])
df.loc['g'] # (should give False)
To, co teraz pracuję, jest następujące
sum(df.index == 'g')
Odpowiedzi:
To powinno załatwić sprawę
źródło
n
,1..n
możesz sprawdzić krotkę o dowolnej długości od'g' in df.columns
jeśli twoja ramka danych została zdefiniowana z nagłówkami kolumn, a nie indeksem, np .:df = pandas.DataFrame({'test':[1,2,3,4]}, columns=['a','b','c','d'])
Dla odniesienia, ponieważ było to coś, czego szukałem, możesz sprawdzić obecność w wartościach lub indeksie, dołączając metodę „.values”, np.
Uważam, że dodanie „.values” w celu uzyskania prostej listy lub ndarray powoduje, że kontrole istnieją lub „w” działają płynniej z innymi narzędziami Pythona. Pomyślałem, że rzucę to dla ludzi.
źródło
in g in df.index
produkuje prawda iin g in df.index.values
fałsz. Ciekawy.Wiele indeksów działa trochę inaczej niż pojedynczy indeks. Oto kilka metod dla multi-indeksowanej ramki danych.
in df.index
działa na pierwszym poziomie tylko podczas sprawdzania wartości pojedynczego indeksu.Sprawdź
df.index.levels
inne poziomy.Sprawdź,
df.index
czy istnieje krotka kombinacji indeksów.źródło
z DataFrame: df_data
Próbowałem:
ale:
Tak fajnie: D
źródło
isin
nie sprawdzi dtype.df['value'].isin([True]).any()
spróbuj tego, to również da ci True, ponieważ pasuje do1
.True -> 1
.źródło
Poniższy kod nie drukuje wartości logicznych, ale pozwala na podzbiór ramek danych według indeksu ... Rozumiem, że to prawdopodobnie nie jest najbardziej efektywny sposób rozwiązania problemu, ale (1) podoba mi się sposób, w jaki to czyta i (2) możesz łatwo podzielić gdzie indeks df1 istnieje w df2:
lub gdzie indeks df1 nie istnieje w df2 ...
źródło