Community코딩 & 개발github.com

데이터 분석

사용자가 업로드한 엑셀(.xlsx/.xls) 또는 CSV 파일에 대해 데이터 분석, 통계 생성, 요약, 피벗 테이블, SQL 질의 등 구조화된 데이터 탐색을 수행합니다. 다중 시트 엑셀 통합 문서, 집계, 필터링, 조인 및 결과를 CSV/JSON/Markdown으로 내보내기를 지원합니다.

데이터 분석란 무엇인가요?

이 스킬은 사용자가 업로드한 Excel/CSV 파일을 DuckDB를 사용하여 분석합니다. DuckDB는 인프로세스 분석 SQL 엔진으로, 스키마 검사, SQL 기반 질의, 통계 요약, 결과 내보내기 등 모든 작업을 단일 Python 스크립트를 통해 처리합니다. 대용량 파일도 효율적으로 처리하며, 다중 시트 Excel 통합 문서를 지원하고 각 시트를 별도의 테이블로 제공합니다. 사용자는 자연어로 분석 요청을 하면, AI가 파일 구조를 검사한 후 SQL 쿼리를 구성하여 실행하고 결과를 표, CSV, JSON 또는 Markdown 형식으로 제공합니다. 또한 여러 파일 간 조인, 윈도우 함수, 피벗 분석 등 고급 분석 패턴을 지원하며, 캐싱 기능을 통해 동일한 파일에 대한 반복 질의를 빠르게 처리합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/bytedance/deer-flow/tree/main/skills/public/data-analysis

Installed? Explore more 코딩 & 개발 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

데이터 분석 스킬

개요

이 스킬은 DuckDB(인프로세스 분석 SQL 엔진)를 사용하여 사용자가 업로드한 Excel/CSV 파일을 분석합니다. 스키마 검사, SQL 기반 질의, 통계 요약, 결과 내보내기를 단일 Python 스크립트를 통해 지원합니다.

핵심 기능

  • Excel/CSV 파일 구조 검사 (시트, 컬럼, 타입, 행 수)
  • 업로드된 데이터에 대한 임의 SQL 질의 실행
  • 통계 요약 생성 (평균, 중앙값, 표준편차, 백분위수, null 개수)
  • 다중 시트 Excel 통합 문서 지원 (각 시트가 테이블이 됨)
  • 질의 결과를 CSV, JSON, Markdown으로 내보내기
  • DuckDB의 컬럼형 엔진을 통한 대용량 파일 효율적 처리

워크플로우

1단계: 요구사항 이해

사용자가 데이터 파일을 업로드하고 분석을 요청하면 다음을 식별하세요:

  • 파일 위치: /mnt/user-data/uploads/ 아래 업로드된 Excel/CSV 파일 경로
  • 분석 목표: 사용자가 원하는 인사이트 (요약, 필터링, 집계, 비교 등)
  • 출력 형식: 결과 표시 방법 (표, CSV 내보내기, JSON 등)
  • /mnt/user-data 아래 폴더를 확인할 필요는 없습니다.

2단계: 파일 구조 검사

먼저 업로드된 파일을 검사하여 스키마를 파악합니다:

python /mnt/skills/public/data-analysis/scripts/analyze.py \
  --files /mnt/user-data/uploads/data.xlsx \
  --action inspect

다음을 반환합니다:

  • 시트 이름 (Excel) 또는 파일 이름 (CSV)
  • 컬럼 이름, 데이터 타입, null이 아닌 개수
  • 시트/파일별 행 수
  • 샘플 데이터 (처음 5행)

3단계: 분석 수행

스키마를 기반으로 사용자의 질문에 답변하는 SQL 쿼리를 구성합니다.

SQL 질의 실행

python /mnt/skills/public/data-analysis/scripts/analyze.py \
  --files /mnt/user-data/uploads/data.xlsx \
  --action query \
  --sql "SELECT category, COUNT(*) as count, AVG(amount) as avg_amount FROM Sheet1 GROUP BY category ORDER BY count DESC"

통계 요약 생성

python /mnt/skills/public/data-analysis/scripts/analyze.py \
  --files /mnt/user-data/uploads/data.xlsx \
  --action summary \
  --table Sheet1

각 숫자형 컬럼에 대해 반환: 개수, 평균, 표준편차, 최소값, 25%, 50%, 75%, 최대값, null 개수. 문자열 컬럼에 대해: 개수, 고유값, 최빈값, 빈도, null 개수.

결과 내보내기

python /mnt/skills/public/data-analysis/scripts/analyze.py \
  --files /mnt/user-data/uploads/data.xlsx \
  --action query \
  --sql "SELECT * FROM Sheet1 WHERE amount > 1000" \
  --output-file /mnt/user-data/outputs/filtered-results.csv

지원되는 출력 형식 (확장자로 자동 감지):

  • .csv — 쉼표로 구분된 값
  • .json — JSON 레코드 배열
  • .md — Markdown 테이블

매개변수

매개변수필수설명
--files예공백으로 구분된 Excel/CSV 파일 경로
--action예다음 중 하나: inspect, query, summary
--sqlquery용실행할 SQL 질의
--tablesummary용요약할 테이블/시트 이름
--output-file아니오결과 내보내기 경로 (CSV/JSON/MD)

[!참고] Python 파일을 읽지 말고 매개변수와 함께 호출만 하세요.

테이블 명명 규칙

  • Excel 파일: 각 시트가 시트 이름을 딴 테이블이 됩니다 (예: Sheet1, Sales, Revenue)
  • CSV 파일: 테이블 이름은 확장자를 제외한 파일 이름입니다 (예: data.csv → data)
  • 여러 파일: 모든 파일의 모든 테이블이 동일한 질의 컨텍스트에서 사용 가능하여 파일 간 조인이 가능합니다.
  • 특수 문자: 공백이나 특수 문자가 있는 시트/파일 이름은 자동 정리됩니다 (공백 → 밑줄). 숫자로 시작하거나 특수 문자가 포함된 이름은 큰따옴표를 사용하세요. 예: "2024_Sales"

분석 패턴

기본 탐색

-- 행 수
SELECT COUNT(*) FROM Sheet1

-- 컬럼의 고유값
SELECT DISTINCT category FROM Sheet1

-- 값 분포
SELECT category, COUNT(*) as cnt FROM Sheet1 GROUP BY category ORDER BY cnt DESC

-- 날짜 범위
SELECT MIN(date_col), MAX(date_col) FROM Sheet1

집계 및 그룹화

-- 카테고리 및 월별 수익
SELECT category, DATE_TRUNC('month', order_date) as month,
       SUM(revenue) as total_revenue
FROM Sales
GROUP BY category, month
ORDER BY month, total_revenue DESC

-- 지출 상위 10명 고객
SELECT customer_name, SUM(amount) as total_spend
FROM Orders GROUP BY customer_name
ORDER BY total_spend DESC LIMIT 10

파일 간 조인

-- 다른 파일의 고객 정보와 판매 조인
SELECT s.order_id, s.amount, c.customer_name, c.region
FROM sales s
JOIN customers c ON s.customer_id = c.id
WHERE s.amount > 500

윈도우 함수

-- 누적 합계 및 순위
SELECT order_date, amount,
       SUM(amount) OVER (ORDER BY order_date) as running_total,
       RANK() OVER (ORDER BY amount DESC) as amount_rank
FROM Sales

피벗 스타일 분석

-- 카테고리별 월별 수익
SELECT category,
       SUM(CASE WHEN MONTH(date) = 1 THEN revenue END) as Jan,
       SUM(CASE WHEN MONTH(date) = 2 THEN revenue END) as Feb,
       SUM(CASE WHEN MONTH(date) = 3 THEN revenue END) as Mar
FROM Sales
GROUP BY category

전체 예제

사용자가 sales_2024.xlsx(시트: Orders, Products, Customers)를 업로드하고 다음과 같이 요청합니다: "판매 데이터를 분석해 주세요. 수익별 상위 제품과 월별 추세를 보여주세요."

1단계: 파일 검사

python /mnt/skills/public/data-analysis/scripts/analyze.py \
  --files /mnt/user-data/uploads/sales_2024.xlsx \
  --action inspect

2단계: 수익별 상위 제품

python /mnt/skills/public/data-analysis/scripts/analyze.py \
  --files /mnt/user-data/uploads/sales_2024.xlsx \
  --action query \
  --sql "SELECT p.product_name, SUM(o.quantity * o.unit_price) as total_revenue, SUM(o.quantity) as total_units FROM Orders o JOIN Products p ON o.product_id = p.id GROUP BY p.product_name ORDER BY total_revenue DESC LIMIT 10"

3단계: 월별 수익 추세

python /mnt/skills/public/data-analysis/scripts/analyze.py \
  --files /mnt/user-data/uploads/sales_2024.xlsx \
  --action query \
  --sql "SELECT DATE_TRUNC('month', order_date) as month, SUM(quantity * unit_price) as revenue FROM Orders GROUP BY month ORDER BY month" \
  --output-file /mnt/user-data/outputs/monthly-trends.csv

4단계: 통계 요약

python /mnt/skills/public/data-analysis/scripts/analyze.py \
  --files /mnt/user-data/uploads/sales_2024.xlsx \
  --action summary \
  --table Orders

발견된 사실, 추세 및 실행 가능한 인사이트에 대한 명확한 설명과 함께 결과를 사용자에게 제시합니다.

다중 파일 예제

사용자가 orders.csv와 customers.xlsx를 업로드하고 다음과 같이 요청합니다: "어느 지역이 가장 높은 평균 주문 금액을 가지고 있나요?"

python /mnt/skills/public/data-analysis/scripts/analyze.py \
  --files /mnt/user-data/uploads/orders.csv /mnt/user-data/uploads/customers.xlsx \
  --action query \
  --sql "SELECT c.region, AVG(o.amount) as avg_order_value, COUNT(*) as order_count FROM orders o JOIN Customers c ON o.customer_id = c.id GROUP BY c.region ORDER BY avg_order_value DESC"

출력 처리

분석 후:

  • 질의 결과를 대화에서 포맷된 테이블로 직접 표시
  • 큰 결과는 파일로 내보내고 present_files 도구로 공유
  • 항상 일반 언어로 핵심 요점과 함께 발견된 사실을 설명
  • 흥미로운 패턴이 있을 때 후속 분석 제안
  • 사용자가 보관하고 싶어하면 결과 내보내기 제안

캐싱

스크립트는 로드된 데이터를 자동으로 캐시하여 매 호출마다 파일을 다시 파싱하지 않습니다:

  • 처음 로드 시 파일이 파싱되어 /mnt/user-data/workspace/.data-analysis-cache/ 아래 영구 DuckDB 데이터베이스에 저장됩니다.
  • 캐시 키는 모든 입력 파일 내용의 SHA256 해시입니다. 파일이 변경되면 새 캐시가 생성됩니다.
  • 동일한 파일에 대한 후속 호출은 캐시된 데이터베이스를 직접 사용합니다 (거의 즉시 시작).
  • 캐시는 투명하게 작동하며 추가 매개변수가 필요하지 않습니다.

이는 동일한 데이터 파일에 대해 여러 질의를 실행할 때 특히 유용합니다 (검사 → 질의 → 요약).

참고 사항

  • DuckDB는 윈도우 함수, CTE, 서브쿼리 및 고급 집계를 포함한 완전한 SQL을 지원합니다.
  • Excel 날짜 컬럼은 자동으로 파싱됩니다. DuckDB 날짜 함수(DATE_TRUNC, EXTRACT 등)를 사용하세요.
  • 매우 큰 파일(100MB 이상)의 경우 DuckDB가 모든 것을 메모리에 로드하지 않고 효율적으로 처리합니다.
  • 공백이 포함된 컬럼 이름은 큰따옴표로 접근할 수 있습니다: "Column Name"

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

academic-paper-review

Use this skill when the user requests to review, analyze, critique, or summarize academic papers, research articles, preprints, or scientific publications. Supports comprehensive structured reviews covering methodology assessment, contribution evaluation, literature positioning, and constructive feedback generation. Trigger on queries involving paper URLs, uploaded PDFs, arXiv links, or requests like "review this paper", "analyze this research", "summarize this study", or "write a peer review".

bootstrap

Generate a personalized SOUL.md through a warm, adaptive onboarding conversation. Trigger when the user wants to create, set up, or initialize their AI partner's identity — e.g., "create my SOUL.md", "bootstrap my agent", "set up my AI partner", "define who you are", "let's do onboarding", "personalize this AI", "make you mine", or when a SOUL.md is missing. Also trigger for updates: "update my SOUL.md", "change my AI's personality", "tweak the soul".

bytedance/academic-paper-review

Use this skill when the user requests to review, analyze, critique, or summarize academic papers, research articles, preprints, or scientific publications. Supports comprehensive structured reviews covering methodology assessment, contribution evaluation, literature positioning, and constructive feedback generation. Trigger on queries involving paper URLs, uploaded PDFs, arXiv links, or requests like "review this paper", "analyze this research", "summarize this study", or "write a peer review".

bytedance/chart-visualization

This skill should be used when the user wants to visualize data. It intelligently selects the most suitable chart type from 26 available options, extracts parameters based on detailed specifications, and generates a chart image using a JavaScript script.

bytedance/claude-to-deerflow

Interact with DeerFlow AI agent platform via its HTTP API. Use this skill when the user wants to send messages or questions to DeerFlow for research/analysis, start a DeerFlow conversation thread, check DeerFlow status or health, list available models/skills/agents in DeerFlow, manage DeerFlow memory, upload files to DeerFlow threads, or delegate complex research tasks to DeerFlow. Also use when the user mentions deerflow, deer flow, or wants to run a deep research task that DeerFlow can handle.

bytedance/consulting-analysis

Use this skill when the user requests to generate, create, or write professional research reports including but not limited to market analysis, consumer insights, brand analysis, financial analysis, industry research, competitive intelligence, investment due diligence, or any consulting-grade analytical report. This skill operates in two phases — (1) generating a structured analysis framework with chapter skeleton, data query requirements, and analysis logic, and (2) after data collection by other skills, producing the final consulting-grade report with structured narratives, embedded charts, and strategic insights.

bytedance/data-analysis

Use this skill when the user uploads Excel (.xlsx/.xls) or CSV files and wants to perform data analysis, generate statistics, create summaries, pivot tables, SQL queries, or any form of structured data exploration. Supports multi-sheet Excel workbooks, aggregation, filtering, joins, and exporting results to CSV/JSON/Markdown.

bytedance/deep-research

Use this skill instead of WebSearch for ANY question requiring web research. Trigger on queries like "what is X", "explain X", "compare X and Y", "research X", or before content generation tasks. Provides systematic multi-angle research methodology instead of single superficial searches. Use this proactively when the user's question needs online information.

bytedance/find-skills

Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.

bytedance/frontend-design

Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, artifacts, posters, or applications (examples include websites, landing pages, dashboards, React components, HTML/CSS layouts, or when styling/beautifying any web UI). Generates creative, polished code and UI design that avoids generic AI aesthetics.

bytedance/github-deep-research

Conduct multi-round deep research on any GitHub Repo. Use when users request comprehensive analysis, timeline reconstruction, competitive analysis, or in-depth investigation of GitHub. Produces structured markdown reports with executive summaries, chronological timelines, metrics analysis, and Mermaid diagrams. Triggers on Github repository URL or open source projects.

bytedance/image-generation

Use this skill when the user requests to generate, create, imagine, or visualize images including characters, scenes, products, or any visual content. Supports structured prompts and reference images for guided generation.

bytedance/podcast-generation

Use this skill when the user requests to generate, create, or produce podcasts from text content. Converts written content into a two-host conversational podcast audio format with natural dialogue.

bytedance/ppt-generation

Use this skill when the user requests to generate, create, or make presentations (PPT/PPTX). Creates visually rich slides by generating images for each slide and composing them into a PowerPoint file.

bytedance/skill-creator

Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.

bytedance/surprise-me

Create a delightful, unexpected "wow" experience for the user by dynamically discovering and creatively combining other enabled skills. Triggers when the user says "surprise me" or any request expressing a desire for an unexpected creative showcase. Also triggers when the user is bored, wants inspiration, or asks for "something interesting".

bytedance/vercel-deploy

Deploy applications and websites to Vercel. Use this skill when the user requests deployment actions such as "Deploy my app", "Deploy this to production", "Create a preview deployment", "Deploy and give me the link", or "Push this live". No authentication required - returns preview URL and claimable deployment link.

bytedance/video-generation

Use this skill when the user requests to generate, create, or imagine videos. Supports structured prompts and reference image for guided generation.

bytedance/web-design-guidelines

Review UI code for Web Interface Guidelines compliance. Use when asked to "review my UI", "check accessibility", "audit design", "review UX", or "check my site against best practices".

chart-visualization

This skill should be used when the user wants to visualize data. It intelligently selects the most suitable chart type from 26 available options, extracts parameters based on detailed specifications, and generates a chart image using a JavaScript script.

관련 스킬