Chciałbym porównać jedną kolumnę pliku df z innymi plikami df. Kolumny to imiona i nazwiska. Chciałbym sprawdzić, czy osoba w jednej ramce danych jest w innej.
Czy możesz wskazać, jak ma wyglądać wynik? Czy to df z nazwami pojawiającymi się w obu dfs i czy potrzebujesz także czegoś innego, takiego jak count, lub pasująca kolumna w df2, itp. Dzięki!
Myślę, że pytanie dotyczy porównania wartości w dwóch różnych kolumnach w różnych ramkach danych, ponieważ osoba pytająca chce sprawdzić, czy osoba w jednej ramce danych znajduje się w innej.
Zauważ, że kolumny ramek danych to serie danych. Więc jeśli weźmiesz dwie kolumny jako serie pand, możesz porównać je tak samo, jak w przypadku tablic numpy.
Odpowiedzi:
Jeśli chcesz sprawdzić równe wartości w pewnej kolumnie, powiedzmy Nazwa, możesz połączyć obie ramki danych w nową:
Myślę, że jest to bardziej wydajne i szybsze niż w
where
przypadku dużych zbiorów danychźródło
True
wpisy pokazują wspólne elementy. Ujawnia to również pozycję wspólnych elementów, w przeciwieństwie do rozwiązania zmerge
.źródło
df.
w twojej odpowiedzi Są tylkodf1
idf2
niedf
Porównywanie wartości w dwóch różnych kolumnach
Za pomocą zestawu uzyskaj unikalne wartości w każdej kolumnie. Przecięcie tych dwóch zestawów zapewni unikalne wartości w obu kolumnach.
Przykład:
df1 = pd.DataFrame({'c1': [1, 4, 7], 'c2': [2, 5, 1], 'c3': [3, 1, 1]}) df2 = pd.DataFrame({'c4': [1, 4, 7], 'c2': [3, 5, 2], 'c3': [3, 7, 5]}) set(df1['c2']).intersection(set(df2['c2']))
Wydajność:
{2, 5}
Porównywanie nazw kolumn dwóch ramek danych
W przypadku próby porównania nazw kolumn dwóch ramek danych:
Jeśli
df1
idf2
są dwie ramki danych:set(df1.columns).intersection(set(df2.columns))
Zapewni to unikalne nazwy kolumn zawarte w obu ramkach danych.
Przykład:
Wydajność:
{'c2', 'c3'}
źródło
Można dokładnie sprawdzić dokładną liczbę wspólnych i różnych pozycjach między dwoma df za pomocą ISIN i value_counts ()
Tak:
Wynik:
Prawda = wspólna Fałsz = inna
źródło
Zauważ, że kolumny ramek danych to serie danych. Więc jeśli weźmiesz dwie kolumny jako serie pand, możesz porównać je tak samo, jak w przypadku tablic numpy.
źródło