### Install nsqip-tools Source: https://github.com/brant01/nsqip_tools/blob/main/README.md Installs the NSQIP Tools Python package using pip. ```bash pip install nsqip-tools ``` -------------------------------- ### Network Drive Support for Data Processing Source: https://github.com/brant01/nsqip_tools/blob/main/README.md Illustrates the package's compatibility with network drives and file systems that lack file locking. It shows how to build Parquet datasets and load data from network locations seamlessly. ```python # Works on network drives, SMB shares, etc. result = nsqip_tools.build_parquet_dataset( data_dir="/Volumes/network_drive/nsqip_data", output_dir="/Volumes/network_drive/processed" ) # Query from network location query = nsqip_tools.load_data("/Volumes/network_drive/processed/adult_nsqip_parquet") ``` -------------------------------- ### Build Parquet Dataset Source: https://github.com/brant01/nsqip_tools/blob/main/README.md Builds an NSQIP parquet dataset from text files, applying standard transformations and optionally generating a data dictionary. ```python import nsqip_tools # Build parquet dataset from NSQIP text files result = nsqip_tools.build_parquet_dataset( data_dir="/path/to/nsqip/files", dataset_type="adult" # or "pediatric" ) print(f"Dataset created at: {result['parquet_dir']}") print(f"Data dictionary at: {result['dictionary']}") ``` -------------------------------- ### Build Parquet Dataset Source: https://github.com/brant01/nsqip_tools/blob/main/README.md Builds a Parquet dataset from specified data directories. Supports automatic memory detection or custom memory limit specification for efficient data processing and storage. Uses columnar storage for optimized compression and access. ```python # Use automatic memory detection (default) result = nsqip_tools.build_parquet_dataset(data_dir="/path/to/files") # Or specify custom limit result = nsqip_tools.build_parquet_dataset( data_dir="/path/to/files", memory_limit="8GB" ) ``` -------------------------------- ### NSQIP Tools API Reference Source: https://github.com/brant01/nsqip_tools/blob/main/README.md Provides detailed information on the functions available in the nsqip-tools package, including parameters, return values, and usage. ```APIDOC build_parquet_dataset(data_dir, output_dir=None, dataset_type="adult", generate_dictionary=True, memory_limit="4GB", verify_case_counts=True, apply_transforms=True) Build an NSQIP parquet dataset from text files with standard transformations. Parameters: data_dir: Path to NSQIP text files output_dir: Output directory (defaults to data_dir) dataset_type: "adult" or "pediatric" generate_dictionary: Generate data dictionary memory_limit: Memory limit for operations verify_case_counts: Verify case counts match expected apply_transforms: Apply standard transformations Returns: Dictionary with paths to: parquet_dir: Parquet dataset directory dictionary: Data dictionary CSV file (if generated) log: Build log file load_data(path_to_parquet_dataset) Load NSQIP data from a parquet dataset for querying. Returns: Query object for chaining filter and collection methods. Query Object Methods: filter_by_cpt(cpt_codes) Filter by CPT procedure codes. filter_by_diagnosis(diagnosis_codes) Filter by ICD diagnosis codes. filter_by_year(years) Filter by operation years. filter_active_variables() Keep only variables with data in most recent year. select_demographics() Select common demographic variables. select_outcomes() Select common outcome variables. lazy_frame Get the Polars LazyFrame for custom operations. collect() Execute query and return Polars DataFrame. count() Get count of rows without collecting full data. sample(n) Get a random sample of n rows. describe() Get summary statistics about the query. ``` -------------------------------- ### Safe Data Collection and Sampling Source: https://github.com/brant01/nsqip_tools/blob/main/README.md Demonstrates memory-safe data collection practices, including checking dataset size before collection, using streaming for large datasets, and obtaining samples for exploration. This prevents out-of-memory errors. ```python # Check size before collecting query = nsqip_tools.load_data("/path/to/parquet/dataset").filter_by_year([2021]) info = query.describe() print(f"Total rows: {info['total_rows']}") print(f"Columns: {info['columns']}") # Use streaming for large datasets df = query.collect(streaming=True) # Get a sample for exploration sample_df = query.sample(n=10000) ``` -------------------------------- ### Load and Query Data Source: https://github.com/brant01/nsqip_tools/blob/main/README.md Loads NSQIP data from a parquet dataset and demonstrates filtering by CPT codes, years, and diagnosis codes using chained Polars operations. ```python import nsqip_tools import polars as pl # Load and filter data df = ( nsqip_tools.load_data("/path/to/parquet/dataset") .filter_by_cpt(["44970", "44979"]) # Laparoscopic procedures .filter_by_year([2020, 2021]) .collect() ) # Chain with Polars operations df = ( nsqip_tools.load_data("/path/to/parquet/dataset") .filter_by_diagnosis(["K80.20"]) # Gallstones .lazy_frame # Access the Polars LazyFrame .select(["CASEID", "AGE_AS_INT", "CPT", "OPERYR"]) .filter(pl.col("AGE_AS_INT") > 50) .group_by("CPT") .agg(pl.count()) .collect() ) ``` -------------------------------- ### System Memory Information Source: https://github.com/brant01/nsqip_tools/blob/main/README.md Retrieves and displays system memory details, including total RAM, available memory, and a recommended memory limit for processing. This is useful for understanding system capacity before running memory-intensive operations. ```python import nsqip_tools # Check system memory mem_info = nsqip_tools.get_memory_info() print(f"Total RAM: {mem_info['total']}") print(f"Available: {mem_info['available']}") print(f"Recommended limit: {mem_info['recommended_limit']}") ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.