Structured peer-review of academic papers.
The English summary is being prepared. Showing the original description.
Analyze Excel/CSV files with DuckDB SQL via bash.
The English summary is being prepared. Showing the original description.
Review the instructions the agent will receive before you install.
Analyzes user-provided Excel (.xlsx/.xls) or CSV files using DuckDB — an in-process analytical SQL engine. Supports schema inspection, SQL querying, statistical summaries, and result export.
Poirot note: The original deer-flow skill uses a bundled
scripts/analyze.pyhelper. Poirot doesn't bundle that script, so this version usesbashwithpython3+duckdbdirectly. Install duckdb first:pip install duckdb.
# Install duckdb if not present
pip install duckdb openpyxl
python3 -c "
import duckdb
con = duckdb.connect()
# For CSV
result = con.execute(\"DESCRIBE SELECT * FROM read_csv_auto('data.csv')\").fetchall()
for col in result:
print(f'{col[0]:30s} {col[1]}')
# For Excel (each sheet = a table)
result = con.execute(\"SELECT * FROM st_read('data.xlsx', layer='Sheet1') LIMIT 0\").fetchall()
# Row count
count = con.execute(\"SELECT COUNT(*) FROM read_csv_auto('data.csv')\").fetchone()[0]
print(f'Rows: {count}')
"
python3 -c "
import duckdb
con = duckdb.connect()
# Describe statistics
print(con.execute(\"SUMMARIZE SELECT * FROM read_csv_auto('data.csv')\").df().to_string())
"
python3 -c "
import duckdb
con = duckdb.connect()
# Aggregation
result = con.execute('''
SELECT category, COUNT(*) as count, AVG(price) as avg_price
FROM read_csv_auto('data.csv')
GROUP BY category
ORDER BY count DESC
''').fetchall()
for row in result:
print(row)
# Join two files
result = con.execute('''
SELECT a.id, a.name, b.amount
FROM read_csv_auto('orders.csv') a
JOIN read_csv_auto('payments.csv') b ON a.id = b.order_id
''').fetchall()
"
python3 -c "
import duckdb
con = duckdb.connect()
# Export to CSV
con.execute(\"COPY (SELECT * FROM read_csv_auto('data.csv') WHERE amount > 100) TO 'filtered.csv' (HEADER, DELIMITER ',')\")
# Export to JSON
con.execute(\"COPY (SELECT * FROM read_csv_auto('data.csv')) TO 'output.json' (FORMAT JSON)\")
"
SELECT
product,
SUM(CASE WHEN month = 'Jan' THEN amount ELSE 0 END) AS jan,
SUM(CASE WHEN month = 'Feb' THEN amount ELSE 0 END) AS feb,
SUM(CASE WHEN month = 'Mar' THEN amount ELSE 0 END) AS mar
FROM read_csv_auto('sales.csv')
GROUP BY product
SELECT
percentile_cont(0.5) WITHIN GROUP (ORDER BY price) AS median,
percentile_cont(0.95) WITHIN GROUP (ORDER BY price) AS p95
FROM read_csv_auto('data.csv')
python3 -c "
import duckdb
con = duckdb.connect()
# List sheets
sheets = con.execute(\"SELECT table_name FROM st_geometry_tables()\").fetchall()
# Query specific sheet
result = con.execute(\"SELECT * FROM st_read('data.xlsx', layer='Sheet2') LIMIT 10\").fetchall()
"
pip install duckdb openpyxl firstSUMMARIZE on very
large datasets may be slow. Sample first: SELECT * FROM ... TABLESAMPLE 10%read_csv_auto options.strptime parsing.st_read reads cell values, not formula results. Use
openpyxl directly if you need computed values.No reviews yet. Tell others what you thought.
No login needed. Share how it worked for you, ask a question, or note where it did not run.
No comments yet. Be the first to write one.
Structured peer-review of academic papers.
The English summary is being prepared. Showing the original description.
Dark-themed SVG architecture/cloud/infra diagrams as HTML.
The English summary is being prepared. Showing the original description.
Search arXiv papers by keyword, author, category, or ID.
The English summary is being prepared. Showing the original description.
Monitor blogs and RSS/Atom feeds via blogwatcher-cli.
The English summary is being prepared. Showing the original description.
Onboarding conversation to generate a user profile.
The English summary is being prepared. Showing the original description.
Generate charts: select type, extract data, render image.
The English summary is being prepared. Showing the original description.