888 commands · 53 cheat sheets · 7 subcategories
Python master quick reference — Page 3
Browse 206 commands from 12 focused cheat sheets on page 3 of 5. Each example opens its matching detailed section.
Data and Serialization · 13 commands
Python Regular Expressions Cheat Sheet
| Use | Syntax | Examples |
|---|---|---|
| Compile a pattern | pattern = re.compile(r'\d{4}-\d{2}-\d{2}') | View examples |
| Search anywhere | match = pattern.search(text) | View examples |
| Match from start | match = pattern.match(text) | View examples |
| Validate the whole string | match = pattern.fullmatch(text) | View examples |
| Capture a group | value = match.group(1) | View examples |
| Named capture | r'(?P<year>\d{4})-(?P<month>\d{2})' | View examples |
| Non-capturing group | r'(?:https?|ftp)://' | View examples |
| Iterate matches | for match in pattern.finditer(text): print(match.span()) | View examples |
| Collect matches | values = pattern.findall(text) | View examples |
| Split by pattern | parts = re.split(r'\s*,\s*', text) | View examples |
| Replace matches | clean = re.sub(r'\s+', ' ', text).strip() | View examples |
| Verbose pattern | pattern = re.compile(r'''...''', re.VERBOSE) | View examples |
| Ignore case | pattern = re.compile(r'error', re.IGNORECASE) | View examples |
Data and Serialization · 17 commands
Python Text Encoding and Unicode Cheat Sheet
| Use | Syntax | Examples |
|---|---|---|
| Encode UTF-8 | payload = text.encode('utf-8') | View examples |
| Decode UTF-8 | text = payload.decode('utf-8') | View examples |
| Use strict decoding | text = payload.decode('utf-8', errors='strict') | View examples |
| Open UTF-8 text | with open(path, 'r', encoding='utf-8') as stream: text = stream.read() | View examples |
| Write stable LF newlines | with open(path, 'w', encoding='utf-8', newline='\n') as stream: stream.write(text) | View examples |
| Wrap a binary stream | text_stream = io.TextIOWrapper(binary_stream, encoding='utf-8', newline='') | View examples |
| Normalize canonical composition | normalized = unicodedata.normalize('NFC', text) | View examples |
| Check normalization | ok = unicodedata.is_normalized('NFC', text) | View examples |
| Build a caseless key | key = unicodedata.normalize('NFC', text).casefold() | View examples |
| Lowercase for presentation | lowered = text.lower() | View examples |
| Read a code point | number = ord(character) | View examples |
| Create a character | character = chr(number) | View examples |
| Read a Unicode name | name = unicodedata.name(character, 'UNNAMED') | View examples |
| Replace malformed input | text = payload.decode('utf-8', errors='replace') | View examples |
| Preserve OS bytes | text = payload.decode(filesystem_encoding, errors='surrogateescape') | View examples |
| Create a streaming decoder | decoder = codecs.getincrementaldecoder('utf-8')(errors='strict') | View examples |
| Finish a decode stream | tail = decoder.decode(b'', final=True) | View examples |
Data and Serialization · 20 commands
Python XML Parsing and Generation Cheat Sheet
| Use | Syntax | Examples |
|---|---|---|
| Parse an XML value | root = ET.fromstring(xml_bytes) | View examples |
| Parse an XML file | tree = ET.parse(path) | View examples |
| Catch malformed XML | except ET.ParseError as error: report(error.position) | View examples |
| Create an expanded name | tag = '{urn:books}title' | View examples |
| Query with a prefix map | items = root.findall('b:item', {'b': 'urn:books'}) | View examples |
| Choose a serialization prefix | ET.register_namespace('b', 'urn:books') | View examples |
| Find one matching element | item = root.find('./item[@id="a"]') | View examples |
| Find matching elements | items = root.findall('.//item') | View examples |
| Iterate matching descendants | for item in root.iter('item'): consume(item) | View examples |
| Append a child element | child = ET.SubElement(parent, 'item', {'id': item_id}) | View examples |
| Set element text | child.text = value | View examples |
| Remove a child | parent.remove(child) | View examples |
| Serialize to text | xml_text = ET.tostring(root, encoding='unicode') | View examples |
| Write UTF-8 XML | tree.write(path, encoding='utf-8', xml_declaration=True) | View examples |
| Canonicalize XML | canonical = ET.canonicalize(xml_data=xml_text) | View examples |
| Iterate completed elements | events = ET.iterparse(source, events=('end',)) | View examples |
| Release processed content | element.clear() | View examples |
| Create a pull parser | parser = ET.XMLPullParser(events=('start', 'end')) | View examples |
| Inspect the Expat version | version = pyexpat.EXPAT_VERSION | View examples |
| Bound XML input bytes | if len(xml_bytes) > MAX_XML_BYTES: raise ValueError('XML too large') | View examples |
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 |
Files, OS, and CLI · 22 commands
Python argparse Command-Line Interfaces Cheat Sheet
| Use | Syntax | Examples |
|---|---|---|
| Create a parser | parser = argparse.ArgumentParser(prog='tool', description='Process records') | View examples |
| Add a positional | parser.add_argument('input', help='input path') | View examples |
| Add an option | parser.add_argument('-o', '--output', default='-') | View examples |
| Parse an explicit list | args = parser.parse_args(['input.csv', '--output', 'result.json']) | View examples |
| Convert a value | parser.add_argument('--limit', type=int, default=100) | View examples |
| Restrict choices | parser.add_argument('--format', choices=('json', 'csv')) | View examples |
| Add positive and negative flags | parser.add_argument('--cache', action=argparse.BooleanOptionalAction, default=True) | View examples |
| Count repeated flags | parser.add_argument('-v', '--verbose', action='count', default=0) | View examples |
| Require one or more values | parser.add_argument('files', nargs='+') | View examples |
| Append repeated option values | parser.add_argument('--tag', action='append', default=[]) | View examples |
| Omit an absent attribute | parser.add_argument('--token', default=argparse.SUPPRESS) | View examples |
| Set parser-wide defaults | parser.set_defaults(timeout=30, handler=run) | View examples |
| Create required subcommands | commands = parser.add_subparsers(dest='command', required=True) | View examples |
| Declare a subcommand | build = commands.add_parser('build', help='build artifacts') | View examples |
| Dispatch to a handler | result = args.handler(args) | View examples |
| Validate with a type function | parser.add_argument('--port', type=parse_port) | View examples |
| Make options mutually exclusive | mode = parser.add_mutually_exclusive_group(required=True) | View examples |
| Retain unknown tokens | args, remaining = parser.parse_known_args(argv) | View examples |
| Populate an existing namespace | args = parser.parse_args(argv, namespace=argparse.Namespace(source='config')) | View examples |
| Render plain help | parser = argparse.ArgumentParser(prog='tool', color=False) | View examples |
| Catch conversion errors | parser = argparse.ArgumentParser(exit_on_error=False) | View examples |
| Generate help text | help_text = parser.format_help() | View examples |
Files, OS, and CLI · 19 commands
Python Configuration with tomllib and configparser Cheat Sheet
| Use | Syntax | Examples |
|---|---|---|
| Read a TOML file | with path.open('rb') as file: config = tomllib.load(file) | View examples |
| Read a TOML string | config = tomllib.loads(source) | View examples |
| Support older Python | tomllib = importlib.import_module('tomllib' if sys.version_info >= (3, 11) else 'tomli') | View examples |
| Parse exact decimal values | config = tomllib.loads(source, parse_float=Decimal) | View examples |
| Read TOML date-time values | released = config['package']['released'] | View examples |
| Catch invalid TOML | except tomllib.TOMLDecodeError as error: report(error) | View examples |
| Bound untrusted input | if path.stat().st_size > MAX_CONFIG_BYTES: raise ValueError('configuration too large') | View examples |
| Validate a required value | port = require_port(config['server'].get('port')) | View examples |
| Read available INI files | loaded = parser.read(['defaults.ini', 'local.ini'], encoding='utf-8') | View examples |
| Read INI text | parser.read_string(source) | View examples |
| Convert an INI integer | workers = parser.getint('service', 'workers') | View examples |
| Convert an INI boolean | debug = parser.getboolean('service', 'debug') | View examples |
| Provide a missing-option fallback | timeout = parser.getfloat('service', 'timeout', fallback=5.0) | View examples |
| Define shared defaults | parser['DEFAULT'] = {'timeout': '5', 'retries': '2'} | View examples |
| Layer configuration files | parser.read(['base.ini', 'deployment.ini', 'local.ini'], encoding='utf-8') | View examples |
| Disable interpolation | parser = ConfigParser(interpolation=None) | View examples |
| Use cross-section interpolation | parser = ConfigParser(interpolation=ExtendedInterpolation()) | View examples |
| Preserve option-name case | parser.optionxform = str | View examples |
| Serialize INI configuration | parser.write(file, space_around_delimiters=True) | View examples |
Files, OS, and CLI · 19 commands
Python Files and Paths Cheat Sheet
| Use | Syntax | Examples |
|---|---|---|
| Create a path object | config = Path('config/settings.json') | View examples |
| Join path segments | report = base / 'reports' / 'daily.txt' | View examples |
| Inspect path components | path.name, path.stem, path.suffix, path.parent | View examples |
| Check existence | path.exists() | View examples |
| Check the path kind | path.is_file(), path.is_dir() | View examples |
| Resolve an absolute path | absolute = path.resolve() | View examples |
| Create parent directories | output.mkdir(parents=True, exist_ok=True) | View examples |
| List directory entries | for child in directory.iterdir(): print(child.name) | View examples |
| Match child paths | for path in directory.glob('*.json'): print(path) | View examples |
| Search recursively | for path in directory.rglob('*.py'): print(path) | View examples |
| Read text | text = path.read_text(encoding='utf-8') | View examples |
| Write text | path.write_text(text, encoding='utf-8') | View examples |
| Process lines lazily | with path.open(encoding='utf-8') as file: lines = list(file) | View examples |
| Read bytes | data = path.read_bytes() | View examples |
| Write bytes | path.write_bytes(data) | View examples |
| Load JSON | data = json.loads(path.read_text(encoding='utf-8')) | View examples |
| Write readable JSON | path.write_text(json.dumps(data, indent=2) + '\n', encoding='utf-8') | View examples |
| Use a temporary directory | with TemporaryDirectory() as directory: work = Path(directory) | View examples |
| Replace a file atomically | temporary.replace(destination) | View examples |
Files, OS, and CLI · 20 commands
Python OS Signals and Process Environment Cheat Sheet
| Use | Syntax | Examples |
|---|---|---|
| Install a handler | previous = signal.signal(signal.SIGTERM, handle_shutdown) | View examples |
| Check the main thread | is_main = threading.current_thread() is threading.main_thread() | View examples |
| List supported signals | supported = signal.valid_signals() | View examples |
| Request graceful stop | def handler(signum, frame): shutdown.set() | View examples |
| Wait interruptibly | requested = shutdown.wait(timeout=1.0) | View examples |
| Restore a disposition | signal.signal(signal.SIGTERM, previous) | View examples |
| Schedule SIGALRM | remaining = signal.alarm(seconds) | View examples |
| Schedule a real-time timer | previous = signal.setitimer(signal.ITIMER_REAL, delay, interval) | View examples |
| Block signals in one thread | previous = signal.pthread_sigmask(signal.SIG_BLOCK, signals) | View examples |
| Read with a default | mode = os.getenv('APP_MODE', 'production') | View examples |
| Require a variable | database_url = os.environ['DATABASE_URL'] | View examples |
| Copy the environment | environment = os.environ.copy() | View examples |
| Set a process variable | os.environ['APP_MODE'] = 'test' | View examples |
| Remove a process variable | os.environ.pop('APP_MODE', None) | View examples |
| Reload external changes | os.reload_environ() | View examples |
| Pass a child environment | subprocess.run(argv, env=child_env, check=True) | View examples |
| Override selected child values | child_env = os.environ | {'APP_MODE': 'batch'} | View examples |
| Expand environment syntax | expanded = os.path.expandvars(template) | View examples |
| Read a bytes environment | raw = os.environb.get(b'KEY') | View examples |
| Check bytes environment support | available = os.supports_bytes_environ | View examples |



