Pandas DataFrame to dwuwymiarowa (2D) struktura danych, która jest wyrównana w formacie tabelarycznym. Te kompozycje można łączyć przy użyciu różnych metod, takich jak concat (), merge () i łączy. Pandy mają wysoką wydajność i w pełni funkcjonalne operacje łączące bazę danych SQL. Za pomocą funkcji scalania można zaimplementować operacje łączenia między obiektami DataFrame.
W tym artykule zbadamy zastosowania funkcji scalania, funkcji łączącej się i różnych rodzajów operacji połączeń w Pandas. Wszystkie przykłady zostaną wykonane za pośrednictwem redaktora Pycharm. Zacznijmy od szczegółów!
Korzystanie z funkcji scalania
Podawana jest podstawowa powszechnie stosowana składnia funkcji merge ():
Pd.scal (df_obj1, df_obj2, how = 'inner', on = brak, left_on = brak, right_on = brak)
Wyjaśnijmy szczegóły parametrów:
Pierwsze dwa DF_OBJ1 I DF_OBJ2 Argumenty to nazwy obiektów lub tabel danych.
„„Jak„Parametr jest używany do różnych rodzajów operacji łączenia, takich jak„ lewy, prawy, zewnętrzny i wewnętrzny ”. Funkcja scalania domyślnie używa operacji połączenia „wewnętrznego”.
Argument "NA" zawiera nazwę kolumny, na której wykonywana jest operacja połączenia. Ta kolumna musi być obecna w obu obiektach DataFrame.
W argumentach „Left_on” i „Right_on”, „Left_on” to nazwa nazwy kolumny jako klawisz w lewej ramce danych. „Right_on” to nazwa kolumny używanej jako klucz z prawej strony danych.
Aby rozwinąć koncepcję łączenia się z ramami danych, wzięliśmy dwa obiekty DataFrame- produkt i klient. Poniższe szczegóły są obecne w Data DataFrame:
Produkt = PD.Ramka danych(
„Product_id”: [101,102,103,104,105,106,107],
„Product_name”: [„Słuchawki”, „torba”, „buty”, „smartfon”, „zęby szczotki”, „zegarek na nadgarstek”, „laptop”],
„Kategoria”: „„ Electronics ”,„ Fashion ”,„ Fashion ”,„ Electronics ”,„ Grocery ”,„ Fashion ”,„ Electronics ”],
„Cena”: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
„Seller_city”: [„Islamabad”, „Lahore”, „Karaczi”, „Rawalpindi”, „Islamabad”, „Karaczi”, „Faisalabad”]
)
Data DataFrame Client zawiera następujące szczegóły:
klient = PD.Ramka danych(
„ID”: [1,2,3,4,5,6,7,8,9],
„Customer_name”: [„Sara”, „Sana”, „Ali”, „Raees”, „Mahwish”, „Umar”, „Mirha”, „asif”, „Maria”],
„Wiek”: [20,21,15,10,31,52,15,18,16],
„Product_id”: [101,0,106,0,103,104,0,0,107],
„Product_purchased”: [„słuchawki”, „na”, „zegarek na nadgarstek”, „na”, „buty”, „smartphone”, „na”, „na”, „laptop”],
„Customer_city”: [„Lahore”, „Islamabad”, „Faisalabad”, „Karaczi”, „Karaczi”, „Islamabad”, „Rawalpindi”, „Islamabad”,
„Lahore”]
)
Dołącz do danych danych na kluczu
Możemy łatwo znaleźć produkty sprzedawane online i klientów, którzy je kupili. Tak więc, w oparciu o kluczowy „produkt_id”, wykonaliśmy wewnętrzną operację łączenia w obu ramach danych w następujący sposób:
# Importuj bibliotekę pandas
importować pandy jako PD
Produkt = PD.Ramka danych(
„Product_id”: [101,102,103,104,105,106,107],
„Product_name”: [„Słuchawki”, „torba”, „buty”, „smartfon”, „zęby szczotki”, „zegarek na nadgarstek”, „laptop”],
„Kategoria”: „„ Electronics ”,„ Fashion ”,„ Fashion ”,„ Electronics ”,„ Grocery ”,„ Fashion ”,„ Electronics ”],
„Cena”: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
„Seller_city”: [„Islamabad”, „Lahore”, „Karaczi”, „Rawalpindi”, „Islamabad”, „Karaczi”, „Faisalabad”]
)
klient = PD.Ramka danych(
„ID”: [1,2,3,4,5,6,7,8,9],
„Customer_name”: [„Sara”, „Sana”, „Ali”, „Raees”, „Mahwish”, „Umar”, „Mirha”, „asif”, „Maria”],
„Wiek”: [20,21,15,10,31,52,15,18,16],
„Product_id”: [101,0,106,0,103,104,0,0,107],
„Product_purchased”: [„słuchawki”, „na”, „zegarek na nadgarstek”, „na”, „buty”, „smartphone”, „na”, „na”, „laptop”],
„City”: [„Lahore”, „Islamabad”, „Faisalabad”, „Karaczi”, „Karaczi”, „Islamabad”, „Rawalpindi”, „Islamabad”,
„Lahore”]
)
Wydrukuj (PD.scal (produkt, klient, on = 'product_id'))
Poniższe wyjście wyświetla się w oknie po uruchomieniu powyższego kodu:
Jeśli kolumny są różne w obu ramach danych, jawnie napisz nazwę każdej kolumny przez argumenty lewe_on i prawy_prawy w następujący sposób:
importować pandy jako PD
Produkt = PD.Ramka danych(
„Product_id”: [101,102,103,104,105,106,107],
„Product_name”: [„Słuchawki”, „torba”, „buty”, „smartfon”, „zęby szczotki”, „zegarek na nadgarstek”, „laptop”],
„Kategoria”: „„ Electronics ”,„ Fashion ”,„ Fashion ”,„ Electronics ”,„ Grocery ”,„ Fashion ”,„ Electronics ”],
„Cena”: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
„Seller_city”: [„Islamabad”, „Lahore”, „Karaczi”, „Rawalpindi”, „Islamabad”, „Karaczi”, „Faisalabad”]
)
klient = PD.Ramka danych(
„ID”: [1,2,3,4,5,6,7,8,9],
„Customer_name”: [„Sara”, „Sana”, „Ali”, „Raees”, „Mahwish”, „Umar”, „Mirha”, „asif”, „Maria”],
„Wiek”: [20,21,15,10,31,52,15,18,16],
„Product_id”: [101,0,106,0,103,104,0,0,107],
„Product_purchased”: [„słuchawki”, „na”, „zegarek na nadgarstek”, „na”, „buty”, „smartphone”, „na”, „na”, „laptop”],
„City”: [„Lahore”, „Islamabad”, „Faisalabad”, „Karaczi”, „Karaczi”, „Islamabad”, „Rawalpindi”, „Islamabad”,
„Lahore”]
)
Wydrukuj (PD.scal (produkt, klient, left_on = 'produkt_name', right_on = 'produkt_purchased'))))
Na ekranie pojawi się następujące dane wyjściowe:
Dołącz do danych danych, używając sposobu argumentu
W poniższych przykładach wyjaśnimy cztery rodzaje operacji połączeń na Pandas DataFrame:
- Wewnętrzne dołączenie
- Zewnętrzne dołączenie
- Lewy dołącz
- Prawe dołącz
Wewnętrzne dołączenie do pandy
Możemy wykonać wewnętrzny łącznik na wielu klawiszach. Aby wyświetlić więcej szczegółów na temat sprzedaży produktu, weź_dysk_demetry, sprzedawcę z ramki danych i produktu_demacie oraz „Customer_city” z DataFrame klienta, aby znaleźć, że sprzedawca lub klient należy do tego samego miasta. Zaimplementuj następujące wiersze kodu:
# Importuj bibliotekę pandas
importować pandy jako PD
Produkt = PD.Ramka danych(
„Product_id”: [101,102,103,104,105,106,107],
„Product_name”: [„Słuchawki”, „torba”, „buty”, „smartfon”, „zęby szczotki”, „zegarek na nadgarstek”, „laptop”],
„Kategoria”: „„ Electronics ”,„ Fashion ”,„ Fashion ”,„ Electronics ”,„ Grocery ”,„ Fashion ”,„ Electronics ”],
„Cena”: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
„Seller_city”: [„Islamabad”, „Lahore”, „Karaczi”, „Rawalpindi”, „Islamabad”, „Karaczi”, „Faisalabad”]
)
klient = PD.Ramka danych(
„ID”: [1,2,3,4,5,6,7,8,9],
„Customer_name”: [„Sara”, „Sana”, „Ali”, „Raees”, „Mahwish”, „Umar”, „Mirha”, „asif”, „Maria”],
„Wiek”: [20,21,15,10,31,52,15,18,16],
„Product_id”: [101,0,106,0,103,104,0,0,107],
„Product_purchased”: [„słuchawki”, „na”, „zegarek na nadgarstek”, „na”, „buty”, „smartphone”, „na”, „na”, „laptop”],
„Customer_city”: [„Lahore”, „Islamabad”, „Faisalabad”, „Karaczi”, „Karaczi”, „Islamabad”, „Rawalpindi”, „Islamabad”,
„Lahore”]
)
Wydrukuj (PD.scal (produkt, klient, jak = 'inner', left_on = ['product_id', 'seller_city'], right_on = ['product_id', 'customer_city']))))))))))
Poniższy wynik pokazuje w oknie po uruchomieniu powyższego kodu:
Pełne/zewnętrzne połączenie w pandy
Zewnętrzne połączenia Zwracają wartości zarówno prawe, jak i lewe, które albo mają dopasowania. Aby wdrożyć zewnętrzne połączenie, ustaw argument „jak” jako zewnętrzny. Zmodyfikujmy powyższy przykład, używając koncepcji Zewnętrznego połączenia. W poniższym kodzie zwróci wszystkie wartości zarówno lewych, jak i prawych ram danych.
# Importuj bibliotekę pandas
importować pandy jako PD
Produkt = PD.Ramka danych(
„Product_id”: [101,102,103,104,105,106,107],
„Product_name”: [„Słuchawki”, „torba”, „buty”, „smartfon”, „zęby szczotki”, „zegarek na nadgarstek”, „laptop”],
„Kategoria”: „„ Electronics ”,„ Fashion ”,„ Fashion ”,„ Electronics ”,„ Grocery ”,„ Fashion ”,„ Electronics ”],
„Cena”: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
„Seller_city”: [„Islamabad”, „Lahore”, „Karaczi”, „Rawalpindi”, „Islamabad”, „Karaczi”, „Faisalabad”]
)
klient = PD.Ramka danych(
„ID”: [1,2,3,4,5,6,7,8,9],
„Customer_name”: [„Sara”, „Sana”, „Ali”, „Raees”, „Mahwish”, „Umar”, „Mirha”, „asif”, „Maria”],
„Wiek”: [20,21,15,10,31,52,15,18,16],
„Product_id”: [101,0,106,0,103,104,0,0,107],
„Product_purchased”: [„słuchawki”, „na”, „zegarek na nadgarstek”, „na”, „buty”, „smartphone”, „na”, „na”, „laptop”],
„Customer_city”: [„Lahore”, „Islamabad”, „Faisalabad”, „Karaczi”, „Karaczi”, „Islamabad”, „Rawalpindi”, „Islamabad”,
„Lahore”]
)
Wydrukuj (PD.scal (produkt, klient, on = 'product_id', how = 'zewnętrzny'))
Ustaw argument wskaźnika jako „prawdziwy”. Zauważysz, że nowa kolumna „_Merge” jest dodawana na końcu.
# Importuj bibliotekę pandas
importować pandy jako PD
Produkt = PD.Ramka danych(
„Product_id”: [101,102,103,104,105,106,107],
„Product_name”: [„Słuchawki”, „torba”, „buty”, „smartfon”, „zęby szczotki”, „zegarek na nadgarstek”, „laptop”],
„Kategoria”: „„ Electronics ”,„ Fashion ”,„ Fashion ”,„ Electronics ”,„ Grocery ”,„ Fashion ”,„ Electronics ”],
„Cena”: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
„Seller_city”: [„Islamabad”, „Lahore”, „Karaczi”, „Rawalpindi”, „Islamabad”, „Karaczi”, „Faisalabad”]
)
klient = PD.Ramka danych(
„ID”: [1,2,3,4,5,6,7,8,9],
„Customer_name”: [„Sara”, „Sana”, „Ali”, „Raees”, „Mahwish”, „Umar”, „Mirha”, „asif”, „Maria”],
„Wiek”: [20,21,15,10,31,52,15,18,16],
„Product_id”: [101,0,106,0,103,104,0,0,107],
„Product_purchased”: [„słuchawki”, „na”, „zegarek na nadgarstek”, „na”, „buty”, „smartphone”, „na”, „na”, „laptop”],
„Customer_city”: [„Lahore”, „Islamabad”, „Faisalabad”, „Karaczi”, „Karaczi”, „Islamabad”, „Rawalpindi”, „Islamabad”,
„Lahore”]
)
Wydrukuj (PD.scal (produkt, klient, on = 'product_id', jak = 'zewnętrzny', wskaźnik = true))
Jak widać na poniższym zrzucie ekranu, wartości kolumny scalania wyjaśnia.
Zostawił dołączenie do pandy
Lewy dołącz tylko rzędy wyświetlania lewej strony danych. Jest podobny do zewnętrznego połączenia. Więc zmień wartość argumentu „jak” za pomocą „lewej”. Spróbuj następującego kodu, aby wdrożyć pomysł dołączenia lewego:
# Importuj bibliotekę pandas
importować pandy jako PD
Produkt = PD.Ramka danych(
„Product_id”: [101,102,103,104,105,106,107],
„Product_name”: [„Słuchawki”, „torba”, „buty”, „smartfon”, „zęby szczotki”, „zegarek na nadgarstek”, „laptop”],
„Kategoria”: „„ Electronics ”,„ Fashion ”,„ Fashion ”,„ Electronics ”,„ Grocery ”,„ Fashion ”,„ Electronics ”],
„Cena”: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
„Seller_city”: [„Islamabad”, „Lahore”, „Karaczi”, „Rawalpindi”, „Islamabad”, „Karaczi”, „Faisalabad”]
)
klient = PD.Ramka danych(
„ID”: [1,2,3,4,5,6,7,8,9],
„Customer_name”: [„Sara”, „Sana”, „Ali”, „Raees”, „Mahwish”, „Umar”, „Mirha”, „asif”, „Maria”],
„Wiek”: [20,21,15,10,31,52,15,18,16],
„Product_id”: [101,0,106,0,103,104,0,0,107],
„Product_purchased”: [„słuchawki”, „na”, „zegarek na nadgarstek”, „na”, „buty”, „smartphone”, „na”, „na”, „laptop”],
„Customer_city”: [„Lahore”, „Islamabad”, „Faisalabad”, „Karaczi”, „Karaczi”, „Islamabad”, „Rawalpindi”, „Islamabad”,
„Lahore”]
)
Wydrukuj (PD.scal (produkt, klient, on = 'product_id', jak = 'left'))
Prawe dołącz do pandy
Prawe połączenie utrzymuje w prawo po prawej stronie w prawej stronie wraz z wierszami, które są również powszechne w lewej ramce danych. W takim przypadku argument „jak” jest ustawiany jako wartość „właściwa”. Uruchom następujący kod, aby wdrożyć odpowiednią koncepcję łączenia:
# Importuj bibliotekę pandas
importować pandy jako PD
Produkt = PD.Ramka danych(
„Product_id”: [101,102,103,104,105,106,107],
„Product_name”: [„Słuchawki”, „torba”, „buty”, „smartfon”, „zęby szczotki”, „zegarek na nadgarstek”, „laptop”],
„Kategoria”: „„ Electronics ”,„ Fashion ”,„ Fashion ”,„ Electronics ”,„ Grocery ”,„ Fashion ”,„ Electronics ”],
„Cena”: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
„Seller_city”: [„Islamabad”, „Lahore”, „Karaczi”, „Rawalpindi”, „Islamabad”, „Karaczi”, „Faisalabad”]
)
klient = PD.Ramka danych(
„ID”: [1,2,3,4,5,6,7,8,9],
„Customer_name”: [„Sara”, „Sana”, „Ali”, „Raees”, „Mahwish”, „Umar”, „Mirha”, „asif”, „Maria”],
„Wiek”: [20,21,15,10,31,52,15,18,16],
„Product_id”: [101,0,106,0,103,104,0,0,107],
„Product_purchased”: [„słuchawki”, „na”, „zegarek na nadgarstek”, „na”, „buty”, „smartphone”, „na”, „na”, „laptop”],
„Customer_city”: [„Lahore”, „Islamabad”, „Faisalabad”, „Karaczi”, „Karaczi”, „Islamabad”, „Rawalpindi”, „Islamabad”,
„Lahore”]
)
Wydrukuj (PD.scal (produkt, klient, on = 'product_id', jak = 'right')))
Na poniższym zrzucie ekranu możesz zobaczyć wynik po uruchomieniu powyższego kodu:
Łączenie ramek danych za pomocą funkcji concat ()
Dwie ramki danych można połączyć za pomocą funkcji CONTAT. Podstawowa składnia funkcji konkatenacji podano poniżej:
Pd.Conat ([df_obj1, df_obj_2])))
Dwa obiekty DataFrame przejdą jako argumenty.
Dołączmy zarówno do produktu DataFrame, jak i klienta za pośrednictwem funkcji CONTAT. Uruchom następujące wiersze kodu, aby dołączyć do dwóch ram danych:
# Importuj bibliotekę pandas
importować pandy jako PD
Produkt = PD.Ramka danych(
„Product_id”: [101,102,103,104,105,106,107],
„Product_name”: [„Słuchawki”, „torba”, „buty”, „smartfon”, „zęby szczotki”, „zegarek na nadgarstek”, „laptop”],
„Kategoria”: „„ Electronics ”,„ Fashion ”,„ Fashion ”,„ Electronics ”,„ Grocery ”,„ Fashion ”,„ Electronics ”],
„Cena”: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
„Seller_city”: [„Islamabad”, „Lahore”, „Karaczi”, „Rawalpindi”, „Islamabad”, „Karaczi”, „Faisalabad”]
)
klient = PD.Ramka danych(
„ID”: [1,2,3,4,5,6,7,8,9],
„Customer_name”: [„Sara”, „Sana”, „Ali”, „Raees”, „Mahwish”, „Umar”, „Mirha”, „asif”, „Maria”],
„Wiek”: [20,21,15,10,31,52,15,18,16],
„Product_id”: [101,0,106,0,103,104,0,0,107],
„Product_purchased”: [„słuchawki”, „na”, „zegarek na nadgarstek”, „na”, „buty”, „smartphone”, „na”, „na”, „laptop”],
„Customer_city”: [„Lahore”, „Islamabad”, „Faisalabad”, „Karaczi”, „Karaczi”, „Islamabad”, „Rawalpindi”, „Islamabad”,
„Lahore”]
)
Wydrukuj (PD.Conat ([produkt, klient])))
Wniosek:
W tym artykule omówiliśmy wdrożenie funkcji merge (), concat () i łączy się z działaniem w Pandas Python. Korzystając z powyższych metod, możesz łatwo dołączyć do dwóch ram danych i się wyuczały. Jak wdrożyć operacje dołączające „wewnętrzne, zewnętrzne, lewe i prawe” w Pandy. Mamy nadzieję, że ten samouczek poprowadzi Cię do wdrażania operacji łączenia w różnych typach danych danych. Daj nam znać o swoich trudnościach w przypadku jakiegokolwiek błędu.