Pandas concat() Eksempler

Pandas concat() Eksempler

Innledning

Pandas concat() er en kraftig funksjon som brukes til å koble sammen flere DataFrame-objekter langs rader eller kolonner. Denne artikkelen vil gi en omfattende veiledning om hvordan du bruker Pandas concat() med ulike eksempler for å illustrere de forskjellige alternativene.

H2: Konkatenering langs rader

H3: Grunnleggende bruk

python
import pandas as pd

df1 = pd.DataFrame({'Navn': ['Ola', 'Kari', 'Per'],
'Alder': [25, 30, 35]})
df2 = pd.DataFrame({'Navn': ['Anne', 'Bent', 'Cecilie'],
'Alder': [40, 45, 50]})

df_konk = pd.concat([df1, df2], ignore_index=True)

print(df_konk)

Utskrift:


Navn Alder
0 Ola 25
1 Kari 30
2 Per 35
3 Anne 40
4 Bent 45
5 Cecilie 50

H4: Flette med indekser

python
import pandas as pd

df1 = pd.DataFrame({'Navn': ['Ola', 'Kari', 'Per'],
'Alder': [25, 30, 35]})
df1.index = ['Ola', 'Kari', 'Per']

df2 = pd.DataFrame({'Navn': ['Anne', 'Bent', 'Cecilie'],
'Alder': [40, 45, 50]})
df2.index = ['Anne', 'Bent', 'Cecilie']

df_konk = pd.concat([df1, df2], ignore_index=True, keys=['DF1', 'DF2'])

print(df_konk)

Utskrift:


Level_0 Navn Alder
0 DF1 Ola 25
1 DF1 Kari 30
2 DF1 Per 35
3 DF2 Anne 40
4 DF2 Bent 45
5 DF2 Cecilie 50

H5: Konkatenering med ikke-konsistente indekser

python
import pandas as pd

df1 = pd.DataFrame({'Navn': ['Ola', 'Kari', 'Per'],
'Alder': [25, 30, 35]})
df1.index = ['Ola', 'Kari', 'Lars']

df2 = pd.DataFrame({'Navn': ['Anne', 'Bent', 'Cecilie'],
'Alder': [40, 45, 50]})
df2.index = ['Anne', 'Bent', 'Mari']

df_konk = pd.concat([df1, df2], ignore_index=False, keys=['DF1', 'DF2'])

print(df_konk)

Utskrift:


Navn Alder Navn Alder
Ola Ola 25 Anne Anne 40
Kari Kari 30 Bent Bent 45
Lars Per 35 Mari Cecilie 50
None None None None None

H2: Konkatenering langs kolonner

H3: Grunnleggende bruk

python
import pandas as pd

df1 = pd.DataFrame({'Navn': ['Ola', 'Kari', 'Per'],
'Alder': [25, 30, 35]})

df2 = pd.DataFrame({'Yrke': ['Lærer', 'Ingeniør', 'Lege']})

df_konk = pd.concat([df1, df2], axis=1)

print(df_konk)

Utskrift:


Navn Alder Yrke
0 Ola 25 Lærer
1 Kari 30 Ingeniør
2 Per 35 Lege

H4: Konkatenering med overlappende kolonner

python
import pandas as pd

df1 = pd.DataFrame({'Navn': ['Ola', 'Kari', 'Per'],
'Alder': [25, 30, 35],
'Yrke': ['Lærer', 'Ingeniør', 'Lege']})

df2 = pd.DataFrame({'Navn': ['Anne', 'Bent', 'Cecilie'],
'Yrke': ['Sykepleier', 'Advokat', 'Journalist']})

df_konk = pd.concat([df1, df2], axis=1, join='inner')

print(df_konk)

Utskrift:


Navn Alder Yrke_x Yrke_y
0 Ola 25 Lærer Sykepleier
1 Kari 30 Ingeniør Advokat
2 Per 35 Lege Journalist

H5: Konkatenering av flere DataFrame-er

python
import pandas as pd

df1 = pd.DataFrame({'Navn': ['Ola', 'Kari', 'Per'],
'Alder': [25, 30, 35]})

df2 = pd.DataFrame({'By': ['Oslo', 'Bergen', 'Trondheim']})

df3 = pd.DataFrame({'Yrke': ['Lærer', 'Ingeniør', 'Lege']})

df_konk = pd.concat([df1, df2, df3], axis=1)

print(df_konk)

Utskrift:


Navn Alder By Yrke
0 Ola 25 Oslo Lærer
1 Kari 30 Bergen Ingeniør
2 Per 35 Trondheim Lege

Konklusjon

Pandas concat() er en allsidig funksjon som gir brukere mulighet til å effektivt kombinere DataFrame-objekter langs rader eller kolonner. Det brede spekteret av alternativer og fleksibiliteten gjør det til et kraftig verktøy for databehandling og analyse. Ved å bruke eksemplene som er beskrevet i denne artikkelen, kan du utnytte Pandas concat() for å håndtere ulike databehov og få nyttige innsikter fra dine datasett.

Ofte stilte spørsmål (FAQ)

1. Hva er forskjellen mellom «ignore_index» og «keys» argumentet?
– «ignore_index» brukes til å fjerne indeksen fra den resulterende DataFrame, mens «keys» brukes til å legge til nye indekser basert på navnet på DataFrame-ene som blir konkatenert.

2. Kan jeg konkatener DataFrame-er med forskjellige datatyper i kolonnene?
– Ja, Pandas concat() tillater konkatenering av DataFrame-er med forskjellige datatyper, men det kan resultere i tomme verdier eller feil i dataframe.

3. Hvordan håndterer Pandas overlappende indekser ved konkatenering?
– Ved standard vil Pandas fjerne overlappende indekser, men du kan bruke «join» argumentet for å spesifisere hvordan overlappende indekser skal håndteres.

4. Kan jeg konkatener DataFrame-er horisontalt og vertikalt samtidig?
– Ja, du kan bruke «append» metoden for å konkatener DataFrame-er vertikalt og «join» metoden for å konkatener horisontalt.

5. Hva er ytelsesimplikasjonene ved å bruke Pandas concat()?
– Pandas concat() er en effektiv operasjon, men det kan ta tid hvis DataFrame-ene er store. Å bruke «ignore_index» argumentet og optimalisere kode for å unngå unødvendige konkateneringer kan forbedre ytelsen.

6. Kan jeg bruke Pandas concat() til å kombinere DataFrame-er med forskjellige former?
– Nei, DataFrame-ene som skal konkateneres, må ha samme form (antall rader og kolonner).

7. Hva er alternativene til Pandas concat() for konkatenering av DataFrame-er?
– I tillegg til Pandas concat() kan du bruke «append» eller «join» metode, avhengig av dine behov.

8. Er Pandas concat() en parallell operasjon?
– Nei, Pandas concat() er ikke en parallell operasjon, noe som betyr at den utføres sekvensielt.