DataFrame Concatenation: The Table Merger's Art! 🔄
IntuitionWhen I first saw this problem, I thought of stacking blocks - we're essentially stacking two data tables on top of each other! Just like combining two
# Intuition
When I first saw this problem, I thought of stacking blocks - we're essentially stacking two data tables on top of each other! Just like combining two decks of cards into one larger deck, we want to merge these DataFrames vertically while maintaining their structure. 📚

# Approach
Our strategy is simple but powerful:
1. Use pandas `concat` function directly
2. Pass both DataFrames as a list
3. Stack them vertically (default behavior)

Example:
```python
# If df1 is:      And df2 is:
#    A  B         #    A  B
# 0  1  2         # 0  5  6
# 1  3  4         # 1  7  8

# Result will be:
#    A  B
# 0  1  2
# 1  3  4
# 0  5  6
# 1  7  8
```

# Complexity
- Time complexity: $$O(n + m)$$ 
  - Like stacking two decks of cards 🃏
  - n and m are the sizes of df1 and df2
 
- Space complexity: $$O(n + m)$$ 
  - Like needing space for all cards 📝
  - Need to store all rows from both DataFrames

# Code
```pythondata []
import pandas as pd
def concatenateTables(df1: pd.DataFrame, df2: pd.DataFrame) -> pd.DataFrame:
    """
    Concatenate two DataFrames vertically.
    Like stacking two decks of cards! 🃏
    
    Args:
        df1: First DataFrame
        df2: Second DataFrame
    Returns:
        Combined DataFrame
    """
    return pd.concat([df1, df2])
```

P.S. This operation is similar to how databases perform UNION operations, but pandas makes it as simple as stacking blocks! 🏗️
['Pandas']