nail Plugin
Lightning-fast data analysis CLI for Parquet, CSV, and XLSX files. Describe, filter, transform, join, compare, and analyze datasets with rich statistics and schema introspection.
Commands
Data Analysis
nail data describe — Show global file overview and metadata
nail data stats — Calculate descriptive statistics
nail data head — Display first N rows
nail data schema — Display schema information
nail data convert — Convert between file formats
Utility
nail self version — Print nail version
nail _ _ — Passthrough to nail CLI
Usage Examples
- "Describe this Parquet file"
- "Show the first 20 rows of the dataset"
- "Calculate statistics for the price and volume columns"
- "Convert this CSV to Parquet"
- "Show the schema of the data file"
Installation
cargo install nail-parquet
Examples
# Describe a dataset
nail data describe sales.parquet
# Statistics for specific columns
nail data stats sales.parquet -c "revenue,profit" --percentiles "0.5,0.9,0.99"
# Correlation matrix
nail _ _ correlations sales.parquet -c "price,volume,discount" --tests t_test
# Frequency distribution
nail _ _ frequency sales.parquet -c "category,region"
# First 20 rows
nail data head sales.parquet -n 20
# Display schema
nail data schema sales.parquet
# Convert CSV to Parquet
nail data convert data.csv -o data.parquet
# Convert Parquet to JSON
nail data convert data.parquet -o data.json -f json
# Remove duplicates
nail _ _ dedup raw.parquet --row-wise -c "id" -o unique.parquet
# Detect and remove outliers
nail _ _ outliers unique.parquet -c "price" --method iqr --remove -o cleaned.parquet
# Create a new column
nail _ _ create cleaned.parquet --column "margin=(price-cost)/price" -o enriched.parquet
# Bin continuous variables
nail _ _ binning opt.parquet -c "age" -b "18,25,35,50,65" --method custom --labels "18-24,25-34,35-49,50-64,65+" -o binned.parquet
# Pivot table
nail _ _ pivot binned.parquet -i "age_binned" -c "category" -l "revenue" --agg sum -o summary.parquet
# Compare two datasets
nail _ _ diff yesterday.parquet --compare today.parquet --keys "id" --changes-only
Key Features
- Multi-format support: Parquet, CSV, XLSX, JSON, and text output
- Rich statistics: Descriptive stats, correlations, frequency distributions, outliers
- Data transformation: dedup, filter, binning, pivot, merge, split, sort, shuffle
- Schema introspection: Display column types, metadata, and schema details
- Format conversion: Convert between Parquet, CSV, XLSX, JSON, and text
- Column operations: Create, rename, drop, select, fill missing values
- Row operations: head, tail, sample, preview, filter, deduplicate
- Join datasets: merge two datasets on common keys
- Compare datasets: diff with key-based change detection
- Performance: Multi-threaded with
-j jobs flag
- Output control:
-o for output file, -f for format override
Notes
- Use
nail <command> --help for full usage details of any subcommand
- The
-f flag overrides output format: json, csv, parquet, or text
- The
-j flag controls parallelism (useful for large datasets)
- Many commands support
-o to write results to a file instead of stdout
- nail auto-detects input format from file extension
1---2name: nail3description: Use this skill when the user wants to analyze, describe, convert, filter, transform, or inspect Parquet, CSV, or XLSX datasets from the command line.4---56# nail Plugin78Lightning-fast data analysis CLI for Parquet, CSV, and XLSX files. Describe, filter, transform, join, compare, and analyze datasets with rich statistics and schema introspection.910## Commands1112### Data Analysis13- `nail data describe` — Show global file overview and metadata14- `nail data stats` — Calculate descriptive statistics15- `nail data head` — Display first N rows16- `nail data schema` — Display schema information17- `nail data convert` — Convert between file formats1819### Utility20- `nail self version` — Print nail version21- `nail _ _` — Passthrough to nail CLI2223## Usage Examples24- "Describe this Parquet file"25- "Show the first 20 rows of the dataset"26- "Calculate statistics for the price and volume columns"27- "Convert this CSV to Parquet"28- "Show the schema of the data file"2930## Installation3132```bash33cargo install nail-parquet34```3536## Examples3738```bash39# Describe a dataset40nail data describe sales.parquet4142# Statistics for specific columns43nail data stats sales.parquet -c "revenue,profit" --percentiles "0.5,0.9,0.99"4445# Correlation matrix46nail _ _ correlations sales.parquet -c "price,volume,discount" --tests t_test4748# Frequency distribution49nail _ _ frequency sales.parquet -c "category,region"5051# First 20 rows52nail data head sales.parquet -n 205354# Display schema55nail data schema sales.parquet5657# Convert CSV to Parquet58nail data convert data.csv -o data.parquet5960# Convert Parquet to JSON61nail data convert data.parquet -o data.json -f json6263# Remove duplicates64nail _ _ dedup raw.parquet --row-wise -c "id" -o unique.parquet6566# Detect and remove outliers67nail _ _ outliers unique.parquet -c "price" --method iqr --remove -o cleaned.parquet6869# Create a new column70nail _ _ create cleaned.parquet --column "margin=(price-cost)/price" -o enriched.parquet7172# Bin continuous variables73nail _ _ binning opt.parquet -c "age" -b "18,25,35,50,65" --method custom --labels "18-24,25-34,35-49,50-64,65+" -o binned.parquet7475# Pivot table76nail _ _ pivot binned.parquet -i "age_binned" -c "category" -l "revenue" --agg sum -o summary.parquet7778# Compare two datasets79nail _ _ diff yesterday.parquet --compare today.parquet --keys "id" --changes-only80```8182## Key Features83- **Multi-format support**: Parquet, CSV, XLSX, JSON, and text output84- **Rich statistics**: Descriptive stats, correlations, frequency distributions, outliers85- **Data transformation**: dedup, filter, binning, pivot, merge, split, sort, shuffle86- **Schema introspection**: Display column types, metadata, and schema details87- **Format conversion**: Convert between Parquet, CSV, XLSX, JSON, and text88- **Column operations**: Create, rename, drop, select, fill missing values89- **Row operations**: head, tail, sample, preview, filter, deduplicate90- **Join datasets**: merge two datasets on common keys91- **Compare datasets**: diff with key-based change detection92- **Performance**: Multi-threaded with `-j` jobs flag93- **Output control**: `-o` for output file, `-f` for format override9495## Notes96- Use `nail <command> --help` for full usage details of any subcommand97- The `-f` flag overrides output format: json, csv, parquet, or text98- The `-j` flag controls parallelism (useful for large datasets)99- Many commands support `-o` to write results to a file instead of stdout100- nail auto-detects input format from file extension