Pipelines that read like prose
Pandas code written one statement at a time tends to grow into a thicket of intermediate variables — df1, df2, df_filtered, df_filtered_grouped. The modern style is method chaining: every step returns a new DataFrame, you indent, and the pipeline reads top-to-bottom like a sequence of operations.
The two enabling methods are assign() (add or overwrite columns without mutating the input) and pipe() (apply an arbitrary function in the chain). Combined with query(), groupby(), and sort_values(), you can express most analytical pipelines as one indented expression.