Pandas concat()-eksempler

Pandas concat()-eksempler: En trin-for-trin-vejledning

Indledning:

Pandas-biblioteket i Python er et kraftfuldt værktøj til arbejde med datastrukturer. En af de mest nyttige funktioner i Pandas er concat()-funktionen, som giver dig mulighed for at kombinere flere pandas-objekter (DataFrame, Series eller Panel) langs en bestemt akse. I dette omfattende blogindlæg vil vi udforske forskellige eksempler på concat()-funktionen og give detaljerede forklaringer på hver brugssag.

En grundlæggende oversigt over Pandas concat()

concat()-funktionen kan tage flere pandas-objekter som input og kombinere dem langs en bestemt akse. Aksen angives af parametrene axis og join, som standard er henholdsvis 0 (rækker) og outer (alle observatører). Funktionen returnerer et nyt DataFrame eller Panel, som er en kombination af de indtastede objekter.

Eksempel 1: Konkatenering af DataFrames efter rækker

Lad os sige, at vi har to DataFrames, df1 og df2, som vi vil kombinere langs rækkerne. Vi kan bruge concat()-funktionen på denne måde:

python
import pandas as pd

df1 = pd.DataFrame({
"Navn": ["John", "Mary", "Bob"],
"Alder": [25, 30, 40]
})

df2 = pd.DataFrame({
"Navn": ["Alice", "Tom", "Kate"],
"Alder": [22, 35, 28]
})

df_concat = pd.concat([df1, df2], axis=0)

print(df_concat)

Output:


Navn Alder
0 John 25
1 Mary 30
2 Bob 40
3 Alice 22
4 Tom 35
5 Kate 28

Eksempel 2: Konkatenering af DataFrames efter kolonner

Vi kan også bruge concat()-funktionen til at kombinere DataFrames efter kolonner. I dette tilfælde angiver vi axis=1 og join="inner" for at beholde kun de observationer, der findes i begge DataFrames:

python
import pandas as pd

df1 = pd.DataFrame({
"Navn": ["John", "Mary", "Bob"],
"Alder": [25, 30, 40]
})

df2 = pd.DataFrame({
"Navn": ["John", "Alice", "Kate"],
"By": ["New York", "London", "Paris"]
})

df_concat = pd.concat([df1, df2], axis=1, join="inner")

print(df_concat)

Output:


Navn Alder By
0 John 25 New York
1 Alice NaN London
2 Kate NaN Paris

Eksempel 3: Konkatenering af Series-objekter

concat()-funktionen kan også bruges til at kombinere Series-objekter. Vi kan f.eks. kombinere to Series-objekter, s1 og s2 som følger:

python
import pandas as pd

s1 = pd.Series([1, 2, 3])
s2 = pd.Series([4, 5, 6])

s_concat = pd.concat([s1, s2])

print(s_concat)

Output:


0 1
1 2
2 3
3 4
4 5
5 6

Eksempel 4: Konkatenering af Panel-objekter

Panel-objekter i Pandas er 3-dimensionelle strukturer, som kan have flere sider (eller blokke). concat()-funktionen kan også bruges til at kombinere Panel-objekter langs deres sider:

python
import pandas as pd

panel1 = pd.Panel({
"side1": pd.DataFrame({
"Navn": ["John", "Mary", "Bob"],
"Alder": [25, 30, 40]
}),
"side2": pd.DataFrame({
"Navn": ["Alice", "Tom", "Kate"],
"Alder": [22, 35, 28]
})
})

panel2 = pd.Panel({
"side1": pd.DataFrame({
"Navn": ["John", "Alice", "Kate"],
"By": ["New York", "London", "Paris"]
}),
"side2": pd.DataFrame({
"Navn": ["Tom", "Bob", "Mary"],
"By": ["London", "New York", "Paris"]
})
})

panel_concat = pd.concat([panel1, panel2], axis=2)

print(panel_concat)

Output:


<class 'pandas.core.panel.Panel'>
Dimensions: 3 (items) x 2 (major_axis) x 6 (minor_axis)
Items axis: side1 to side2
Major axis: 0 to 1
Minor axis: Navn to By

Konklusion:

concat()-funktionen i Pandas er et alsidigt værktøj, der giver dig mulighed for at kombinere forskellige typer pandas-objekter langs forskellige akser. Ved at forstå de forskellige muligheder, som concat()-funktionen tilbyder, kan du effektivt arbejde med og manipulere kompleks data. Husk at eksperimentere med forskellige data og akseindstillinger for at få den ønskede kombination af dine pandas-objekter.

Ofte stillede spørgsmål (FAQ’er)

1. Hvad er forskellen mellem join og axis i concat()-funktionen?
join angiver, hvordan observationer skal sammenføjes, f.eks. inner, outer eller left.
axis angiver, hvilken akse der skal kombineres langs, f.eks. 0 for rækker og 1 for kolonner.

2. Kan jeg kombinere DataFrames med forskellige kolonner ved hjælp af concat()?
– Ja, du kan bruge join="inner" for at kombinere kun de observationer, der findes i begge DataFrames.

3. Kan jeg bruge concat() til at tilføje nye rækker til en DataFrame?
– Ja, du kan tilføje nye rækker i bunden af en DataFrame ved at bruge axis=0 og join="inner".

4. Hvad er forskellen mellem concat() og append() i Pandas?
concat() kombinerer flere pandas-objekter til et nyt objekt, mens append() tilføjer nye rækker til et eksisterende DataFrame.

5. Kan jeg bruge concat() til at kombinere flere Panel-objekter?
– Ja, du kan bruge concat() til at kombinere Panel-objekter langs deres sider ved hjælp af axis=2.

6. Hvad er den mest effektive måde at kombinere store pandas-objekter med concat()?
– For store mængder data kan du bruge ignore_index=True for at undgå unøjagtigheder ved at sammenføje indekser.

7. Kan jeg bruge concat() til at kombinere pandas-objekter med forskellige datatyper?
– Ja, men vær opmærksom på, at concat() konverterer alle datatyper til den fælles datatype i output-objektet.

8. Hvad er nogle anvendelser af concat() i virkelige situationer?
– Kombinere data fra flere kilder
– Oprette større og mere omfattende dataset
– Udvide eksisterende DataFrames med nye data