0
0
Pandasdata~10 mins

concat() for stacking DataFrames in Pandas - Step-by-Step Execution

Choose your learning style9 modes available
Concept Flow - concat() for stacking DataFrames
Start with DataFrames
Choose axis: 0 for rows, 1 for columns
Call pd.concat() with list of DataFrames
pandas stacks DataFrames along chosen axis
Return new combined DataFrame
This flow shows how pandas concat() stacks DataFrames by choosing an axis and combining them into one.
Execution Sample
Pandas
import pandas as pd

df1 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})
df2 = pd.DataFrame({'A': [5, 6], 'B': [7, 8]})

result = pd.concat([df1, df2], axis=0)
This code stacks two DataFrames vertically (row-wise) using concat with axis=0.
Execution Table
StepActionInput DataFramesAxisResulting DataFrameNotes
1Create df1{'A': [1, 2], 'B': [3, 4]}N/A A B 0 1 3 1 2 4First DataFrame created
2Create df2{'A': [5, 6], 'B': [7, 8]}N/A A B 0 5 7 1 6 8Second DataFrame created
3Call pd.concat([df1, df2], axis=0)[df1, df2]0 (rows) A B 0 1 3 1 2 4 0 5 7 1 6 8DataFrames stacked vertically, index repeated
4Call pd.concat([df1, df2], axis=1)[df1, df2]1 (columns) A B A B 0 1 3 5 7 1 2 4 6 8DataFrames stacked horizontally, columns duplicated
5Call pd.concat([df1, df2], axis=0, ignore_index=True)[df1, df2]0 (rows) A B 0 1 3 1 2 4 2 5 7 3 6 8Index reset to avoid duplicates
6ExitN/AN/AN/ANo more stacking, concat finished
💡 All DataFrames stacked; concat() returns combined DataFrame
Variable Tracker
VariableStartAfter Step 1After Step 2After Step 3After Step 4After Step 5Final
df1undefined A B 0 1 3 1 2 4 A B 0 1 3 1 2 4 A B 0 1 3 1 2 4 A B 0 1 3 1 2 4 A B 0 1 3 1 2 4 A B 0 1 3 1 2 4
df2undefinedundefined A B 0 5 7 1 6 8 A B 0 5 7 1 6 8 A B 0 5 7 1 6 8 A B 0 5 7 1 6 8 A B 0 5 7 1 6 8
resultundefinedundefinedundefined A B 0 1 3 1 2 4 0 5 7 1 6 8 A B A B 0 1 3 5 7 1 2 4 6 8 A B 0 1 3 1 2 4 2 5 7 3 6 8 A B 0 1 3 1 2 4 2 5 7 3 6 8
Key Moments - 3 Insights
Why do the row indexes repeat after stacking with axis=0?
Because concat() keeps original indexes by default, so rows from both DataFrames keep their own indexes (see execution_table step 3). Use ignore_index=True to reset.
What happens when stacking with axis=1?
DataFrames are joined side-by-side, adding columns. If columns have same names, they appear duplicated (see execution_table step 4).
How does ignore_index=True affect the result?
It resets the row index to a continuous sequence, avoiding duplicate indexes (see execution_table step 5).
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table at step 3. What is the index of the third row in the resulting DataFrame?
A0
B1
C2
D3
💡 Hint
Check the 'Resulting DataFrame' column at step 3; indexes repeat from original DataFrames.
At which step does concat() stack DataFrames horizontally?
AStep 2
BStep 3
CStep 4
DStep 5
💡 Hint
Look for axis=1 in the 'Axis' column of the execution table.
If we remove ignore_index=True in step 5, what will happen to the index?
AIt will reset to 0,1,2,3
BIt will keep duplicate indexes from original DataFrames
CIt will create a multi-level index
DIt will drop the index column
💡 Hint
Compare step 3 and step 5 results in the execution table to see the effect of ignore_index.
Concept Snapshot
pd.concat([df1, df2], axis=0) stacks DataFrames vertically (rows).
axis=1 stacks horizontally (columns).
By default, indexes are kept; use ignore_index=True to reset.
Result is a new combined DataFrame.
Useful for combining data from multiple sources.
Full Transcript
This visual execution shows how pandas concat() stacks DataFrames. First, two DataFrames df1 and df2 are created. Then, concat() is called with axis=0 to stack rows, resulting in a DataFrame with repeated indexes. Next, concat() with axis=1 stacks columns side-by-side, duplicating column names. Using ignore_index=True resets the row index to avoid duplicates. Variables df1, df2, and result change as concat() runs. Key points include index behavior and axis choice. The quiz tests understanding of index values, stacking direction, and ignore_index effect.