logo

Hur man kombinerar två dataramar i Python - Pandas

Pandas

Pandas är ett inbyggt bibliotek i Python som används för att arbeta med relationsdata i programmeringsspråket Python. Den har många funktioner och datastrukturer som hjälper till att hantera relationsdata.

Om data lagras i form av rader och kolumner eller tvådimensionell data kallas i allmänhet dataramar i pandor.

Om vi ​​har två dataramar kan vi med hjälp av pandor kombinera dem eller slå samman dem till en enda dataram. Pandas tillhandahåller inställningslogiken för att kombinera data från två olika dataramar samt logik för att jämföra dem.

1. Använda concat()-funktionen

I python kan vi sammanfoga de två dataramarna med hjälp av funktionen concat() hos Pandas. Vi kan sammanfoga data antingen radvis eller kolumnvis. Denna funktion slår samman data på en axel (rad eller kolumn) och utför inställningslogiken på en annan axel (ett annat index).

Exempel:

 import pandas as pd from IPython.display import display # First DataFrame dataFrame1 = pd.DataFrame({'id': ['A1', 'A2', 'A3', 'A4'], 'Name': ['ABC', 'PQR', 'DEF', 'GHI'], 'Marks':[65,69,96,89]}) # Second DataFrame dataFrame2 = pd.DataFrame({'id': ['B1', 'B2', 'B3', 'B4'], 'Name': ['XYZ', 'TUV', 'MNO', 'JKL'], 'Marks':[56,96,69,98]}) frames = [dataFrame1, dataFrame2] result = pd.concat(frames) display(result) 

Produktion:

Hur man kombinerar två dataramar i Python - Pandas

Förklaring:

I koden ovan har vi först importerat Pandas-biblioteket i filen. Sedan skapade vi de två dataramarna där varje dataram innehåller tre kolumner och fyra rader. Sedan använde vi concat-funktionen, som sammanfogar dessa två dataramar radvis, och med displayfunktionen skrev vi ut detta på skärmen.

2. Använda joins i pandor

Vi har förstått konceptet med joins i databasen där vi sammanfogar de två tabellerna utifrån något gemensamt attribut. Samma metod är tillämplig vid sammanlänkning av dataramar. I den enkla concat()-metoden slog vi samman alla rader på varandra och skapade den nya dataramen. I joinen definierar vi vilken typ av join vi vill utföra på bordet, om det är en inner join eller en yttre join. Oavsett vilken typ av sammanfogning, antingen inre sammanfogning (korsning) eller yttre sammanfogning (union), kommer att definieras i join-attributet.

Exempel:

java öppen fil
 import pandas as pd from IPython.display import display dataFrame1 = pd.DataFrame({'id': ['A1', 'A2', 'A3', 'A4'], 'Name': ['ABC', 'PQR', 'TUV', 'JKL']}) dataFrame2 = pd.DataFrame({'City': ['NOIDA', 'JAIPUR', 'MANALI', 'DELHI'], 'Age': ['11', '10', '12', '17']}) # the default behaviour is join='outer' # inner join result = pd.concat([dataFrame1, dataFrame2], axis=1, join='inner') display(result) 

Produktion:

Hur man kombinerar två dataramar i Python - Pandas

Förklaring:

I ovanstående kod har vi två daraframes som båda innehåller två kolumner och fyra rader. Båda dataramarna har olika kolumnnamn, och i funktionen concat() har vi använt inner join, som tar skärningsdelen.

I axelattributet har vi initialiserat värde ett, så vi fick hela data.

Exempel:

 import pandas as pd from IPython.display import display dataFrame1 = pd.DataFrame({'id': ['A1', 'A2', 'A3', 'A4'], 'Name': ['ABC', 'PQR', 'TUV', 'JKL']}) dataFrame2 = pd.DataFrame({'id': ['A1', 'A2', 'A3', 'A4'],'City': ['NOIDA', 'JAIPUR', 'MANALI', 'DELHI'], 'Age': ['11', '10', '12', '17']}) # the default behaviour is join='outer' # inner join result = pd.concat([dataFrame1, dataFrame2], axis=0, join='inner') display(result) 

Produktion:

tredje normalformen
Hur man kombinerar två dataramar i Python - Pandas

Eftersom det inte finns något gemensamt attribut och den inre kopplingen tillämpades, fick vi en tom dataram som utdata. Om det finns ett gemensamt attribut i båda dataramarna:

Exempel:

 import pandas as pd from IPython.display import display dataFrame1 = pd.DataFrame({'id': ['A1', 'A2', 'A3', 'A4'], 'Name': ['ABC', 'PQR', 'TUV', 'JKL']}) dataFrame2 = pd.DataFrame({'id': ['B1', 'B2', 'B3', 'B4'], 'City': ['NOIDA', 'JAIPUR', 'MANALI', 'DELHI'], 'Age': ['11', '10', '12', '17']}) # the default behaviour is join='outer' # inner join result = pd.concat([dataFrame1, dataFrame2], axis=0, join='inner') display(result) 

Produktion:

Hur man kombinerar två dataramar i Python - Pandas

Förklaring:

I ovanstående kod har vi ett attribut, 'id', som är vanligt så att dataramen skapas endast baserat på vanliga attribut.

3. Använd metoden append().

Istället för metoden concat() kan vi använda metoden append(). Denna append()-metod tillämpas på en av dataramarna.

Exempel:

 import pandas as pd from IPython.display import display # First DataFrame dataFrame1 = pd.DataFrame({'id': ['A1', 'A2', 'A3', 'A4'], 'City': ['JAIPUR', 'MANALI', 'NOIDA', 'LUCKNOW']}) # Second DataFrame dataFrame2 = pd.DataFrame({'id': ['B1', 'B2', 'B3', 'B4'], 'City': ['MUMBAI', 'UDAIPUR', 'RISHIKESH', 'KASHMIR']}) # append method result = dataFrame1.append(dataFrame2) display(result) 

Produktion:

Hur man kombinerar två dataramar i Python - Pandas

Förklaring:

I ovanstående kod har vi slagit samman två dataramar med hjälp av append-metoden.