Cómo crear un DataFrame vacío de pandas con las mismas columnas y tipos que un DataFrame existente

create_empty_dataframe.py
empty_df = pd.DataFrame(columns=df.columns).astype(df.dtypes)

Ejemplo completo

create_empty_dataframe_example.py
import pandas as pd

# Inicializar datos a listas.
data = {'Name': ['Tom', 'Nick', 'John'],
        'Age': [20, 21, 19]}

# Crear DataFrame
df = pd.DataFrame(data)

empty_df = pd.DataFrame(columns=df.columns).astype(df.dtypes)

Echa un vistazo a artículos similares por categoría: Pandas Python