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.
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.
Odpowiedzi:
Jeśli chcesz sprawdzić równe wartości w pewnej kolumnie, powiedzmy Nazwa, możesz połączyć obie ramki danych w nową:
mergedStuff = pd.merge(df1, df2, on=['Name'], how='inner')
mergedStuff.head()
Myślę, że jest to bardziej wydajne i szybsze niż w where
przypadku dużych zbiorów danych
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
i df2
są dwie ramki danych:
set(df1.columns).intersection(set(df2.columns))
Zapewni to unikalne nazwy kolumn zawarte w obu ramkach danych.
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.columns).intersection(set(df2.columns))
Wydajność:
{'c2', 'c3'}