Why object is a warning sign
What it is
object means the column holds arbitrary Python objects, usually strings — or a mix.
Why it matters
An object column of numbers is many times slower than an int column, will not compare numerically, and sorts lexicographically.
In the real world: An “amount” column showing as object usually means some values are text like “₹1,200”, so totals silently fail or come out wrong.
s = pd.Series(["10", "9", "100"]) # object
s.max() # '9' — lexicographic, not numeric
s.astype(int).max() # 100A single stray non-numeric value makes the entire column object, and every downstream numeric operation quietly does the wrong thing rather than failing.