76 commands · 5 cheat sheets · Python
Pandas Data Analysis master quick reference
Browse 76 commands from 5 focused cheat sheets on page 1 of 1. Each example opens its matching detailed section.
Pandas Data Analysis · 15 commands
Pandas Data Cleaning and Missing Data Cheat Sheet
| Use | Syntax | Examples |
|---|---|---|
| Count missing values | missing = df.isna().sum() | View examples |
| Select complete rows | complete = df.loc[df[['id', 'email']].notna().all(axis='columns')] | View examples |
| Drop incomplete records | clean = df.dropna(subset=['customer_id', 'ordered_at']) | View examples |
| Fill column defaults | clean = df.fillna({'country': 'unknown', 'quantity': 0}) | View examples |
| Forward-fill briefly | df['status'] = df['status'].ffill(limit=1) | View examples |
| Interpolate numeric gaps | df['reading'] = df['reading'].interpolate(limit_area='inside') | View examples |
| Replace sentinels | df['status'] = df['status'].replace({'N/A': pd.NA, '': pd.NA}) | View examples |
| Normalize text | df['email'] = df['email'].str.strip().str.lower() | View examples |
| Normalize categories | df['status'] = df['status'].replace({'in progress': 'active', 'open': 'active'}) | View examples |
| Parse numeric values | df['amount'] = pd.to_numeric(df['amount'], errors='coerce') | View examples |
| Parse exact dates | df['ordered_at'] = pd.to_datetime(df['ordered_at'], format='%Y-%m-%d', errors='coerce') | View examples |
| Use nullable dtypes | df = df.convert_dtypes() | View examples |
| Find values out of range | invalid = df.loc[df['quantity'].notna() & ~df['quantity'].between(1, 100)] | View examples |
| Find duplicate keys | duplicates = df.loc[df.duplicated('order_id', keep=False)] | View examples |
| Keep the latest record | latest = df.sort_values('updated_at').drop_duplicates('order_id', keep='last') | View examples |
Pandas Data Analysis · 16 commands
Pandas DataFrames and Indexing Cheat Sheet
| Use | Syntax | Examples |
|---|---|---|
| Create a DataFrame | df = pd.DataFrame({'name': ['Ada', 'Lin'], 'score': [91, 84]}) | View examples |
| Read CSV data | df = pd.read_csv('scores.csv', usecols=['name', 'score']) | View examples |
| Preview rows | preview = df.head(3) | View examples |
| Inspect column types | types = df.dtypes | View examples |
| Select one column | scores = df['score'] | View examples |
| Select by labels | result = df.loc[df.index[:2], ['name', 'score']] | View examples |
| Select by position | result = df.iloc[:2, [0, 2]] | View examples |
| Filter with a mask | high_scores = df.loc[df['score'].ge(90)] | View examples |
| Match allowed values | selected = df.loc[df['team'].isin({'red', 'blue'})] | View examples |
| Query rows | selected = df.query('score >= @minimum and active') | View examples |
| Update matching rows | df.loc[df['score'].ge(90), 'level'] = 'advanced' | View examples |
| Create a derived column | result = df.assign(percent=lambda frame: frame['score'] / frame['possible'] * 100) | View examples |
| Rename columns | result = df.rename(columns={'score': 'points'}) | View examples |
| Sort rows | result = df.sort_values(['team', 'score'], ascending=[True, False]) | View examples |
| Set an index | indexed = df.set_index('student_id', verify_integrity=True) | View examples |
| Restore a column index | flat = indexed.reset_index() | View examples |
Pandas Data Analysis · 15 commands
Pandas GroupBy, Aggregation, and Reshaping Cheat Sheet
| Use | Syntax | Examples |
|---|---|---|
| Sum by group | totals = df.groupby('region')['revenue'].sum() | View examples |
| Keep group columns | totals = df.groupby('region', as_index=False)['revenue'].sum() | View examples |
| Group by several keys | totals = df.groupby(['region', 'product'], as_index=False)['revenue'].sum() | View examples |
| Name aggregate columns | summary = df.groupby('region').agg(total=('revenue', 'sum'), average=('revenue', 'mean')) | View examples |
| Count group rows | counts = df.groupby('region').size() | View examples |
| Count present values | counts = df.groupby('region')['revenue'].count() | View examples |
| Broadcast group totals | df['region_total'] = df.groupby('region')['revenue'].transform('sum') | View examples |
| Calculate group share | df['share'] = df['revenue'] / df.groupby('region')['revenue'].transform('sum') | View examples |
| Calculate grouped running totals | df['running'] = df.groupby('account')['amount'].cumsum() | View examples |
| Keep qualifying groups | result = df.groupby('region').filter(lambda group: len(group) >= 2) | View examples |
| Pivot unique coordinates | wide = df.pivot(index='date', columns='metric', values='value') | View examples |
| Aggregate a pivot table | wide = df.pivot_table(index='region', columns='product', values='revenue', aggfunc='sum', fill_value=0) | View examples |
| Unpivot wide columns | long = df.melt(id_vars='id', var_name='metric', value_name='value') | View examples |
| Explode list values | long = df.explode('tags', ignore_index=True) | View examples |
| Build a cross-tabulation | counts = pd.crosstab(df['region'], df['status'], margins=True) | View examples |
Pandas Data Analysis · 14 commands
Pandas Merging, Joining, and Concatenation Cheat Sheet
| Use | Syntax | Examples |
|---|---|---|
| Keep matching keys | result = orders.merge(customers, on='customer_id', how='inner') | View examples |
| Preserve left rows | result = orders.merge(customers, on='customer_id', how='left') | View examples |
| Join different key names | result = orders.merge(customers, left_on='customer_id', right_on='id', how='left') | View examples |
| Validate key cardinality | result = orders.merge(customers, on='customer_id', validate='many_to_one') | View examples |
| Track row provenance | audit = left.merge(right, on='id', how='outer', indicator=True) | View examples |
| Label overlapping columns | result = current.merge(previous, on='id', suffixes=('_current', '_previous')) | View examples |
| Stack row batches | combined = pd.concat([january, february], ignore_index=True) | View examples |
| Require identical columns | combined = pd.concat(frames, join='inner', ignore_index=True) | View examples |
| Align columns by index | combined = pd.concat([features, targets], axis='columns') | View examples |
| Preserve batch identity | combined = pd.concat({'jan': january, 'feb': february}, names=['month']) | View examples |
| Join on indexes | result = customers.join(accounts, how='left', validate='one_to_one') | View examples |
| Fill from a fallback | combined = primary.combine_first(fallback) | View examples |
| Match the nearest prior key | result = pd.merge_asof(events, rates, on='time', direction='backward') | View examples |
| Show changed values | changes = before.compare(after, result_names=('before', 'after')) | View examples |
Pandas Data Analysis · 16 commands
Pandas Time Series, Resampling, and Rolling Cheat Sheet
| Use | Syntax | Examples |
|---|---|---|
| Parse exact timestamps | df['time'] = pd.to_datetime(df['time'], format='%Y-%m-%d %H:%M', errors='raise') | View examples |
| Normalize to UTC | df['time'] = pd.to_datetime(df['time'], utc=True, errors='coerce') | View examples |
| Create a regular index | index = pd.date_range('2026-08-01', periods=24, freq='h', tz='UTC') | View examples |
| Set a sorted time index | series = df.set_index('time').sort_index() | View examples |
| Extract time components | df['weekday'] = df['time'].dt.day_name() | View examples |
| Localize wall times | localized = naive.dt.tz_localize('America/Sao_Paulo', ambiguous='raise', nonexistent='raise') | View examples |
| Convert time zones | local = utc.dt.tz_convert('America/Sao_Paulo') | View examples |
| Aggregate daily totals | daily = series.resample('D').sum(min_count=1) | View examples |
| Control interval edges | daily = series.resample('D', closed='right', label='right').sum() | View examples |
| Expose missing intervals | hourly = series.asfreq('h') | View examples |
| Interpolate by time | hourly = series.resample('h').asfreq().interpolate(method='time', limit_area='inside') | View examples |
| Calculate a rolling mean | result = series.rolling('3h', min_periods=2).mean() | View examples |
| Calculate an expanding total | result = series.expanding(min_periods=1).sum() | View examples |
| Calculate an EWM mean | result = series.ewm(span=3, adjust=False).mean() | View examples |
| Create a one-period lag | df['previous'] = df['value'].shift(1) | View examples |
| Calculate fractional change | df['change'] = df['value'].pct_change(fill_method=None) | View examples |



