def clean_data(df: pd.DataFrame) -> pd.DataFrame: """Clean and preprocess DataFrame. Args: data: Input DataFrame Returns: Cleaned DataFrame """ df.drop(["Wiki Page"], axis=1, inplace=True) # Drop duplicates df = df.drop_duplicates(subset='Title', keep='first') # Get object columns col_obj = df.select_dtypes(include=["object"]).columns # Clean string columns for col in col_obj: # Strip whitespace df[col] = df[col].str.strip() # Replace unknown/empty values df[col] = df[col].apply( lambda x: None if pd.isna(x) or x.lower() in ["", "unknown"] else x.capitalize() ) # Drop rows with any null values df = df.dropna(how="any", axis=0) return df movies = clean_data(movies).head(1000) movies.head()