data-analysis
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseData Analysis
数据分析
When to use this skill
何时使用该技能
- 데이터 탐색: 새로운 데이터셋 이해
- 리포트 생성: 데이터 기반 인사이트 도출
- 품질 검증: 데이터 정합성 확인
- 의사결정 지원: 데이터 기반 추천
- 数据探索:了解新数据集
- 生成报告:提炼基于数据的洞察
- 质量验证:检查数据一致性
- 决策支持:提供基于数据的建议
Instructions
操作指南
Step 1: 데이터 로드 및 탐색
步骤1:数据加载与探索
Python (Pandas):
python
import pandas as pd
import numpy as npPython (Pandas):
python
import pandas as pd
import numpy as npCSV 로드
加载CSV
df = pd.read_csv('data.csv')
df = pd.read_csv('data.csv')
기본 정보
基本信息
print(df.info())
print(df.describe())
print(df.head(10))
print(df.info())
print(df.describe())
print(df.head(10))
결측치 확인
检查缺失值
print(df.isnull().sum())
print(df.isnull().sum())
데이터 타입
数据类型
print(df.dtypes)
**SQL**:
```sql
-- 테이블 구조 확인
DESCRIBE table_name;
-- 샘플 데이터
SELECT * FROM table_name LIMIT 10;
-- 기본 통계
SELECT
COUNT(*) as total_rows,
COUNT(DISTINCT column_name) as unique_values,
MIN(numeric_column) as min_val,
MAX(numeric_column) as max_val,
AVG(numeric_column) as avg_val
FROM table_name;print(df.dtypes)
**SQL**:
```sql
-- 查看表结构
DESCRIBE table_name;
-- 样本数据
SELECT * FROM table_name LIMIT 10;
-- 基本统计
SELECT
COUNT(*) as total_rows,
COUNT(DISTINCT column_name) as unique_values,
MIN(numeric_column) as min_val,
MAX(numeric_column) as max_val,
AVG(numeric_column) as avg_val
FROM table_name;Step 2: 데이터 정제
步骤2:数据清洗
python
undefinedpython
undefined결측치 처리
处理缺失值
df['column'].fillna(df['column'].mean(), inplace=True)
df.dropna(subset=['required_column'], inplace=True)
df['column'].fillna(df['column'].mean(), inplace=True)
df.dropna(subset=['required_column'], inplace=True)
중복 제거
去除重复值
df.drop_duplicates(inplace=True)
df.drop_duplicates(inplace=True)
데이터 타입 변환
转换数据类型
df['date'] = pd.to_datetime(df['date'])
df['category'] = df['category'].astype('category')
df['date'] = pd.to_datetime(df['date'])
df['category'] = df['category'].astype('category')
이상치 제거 (IQR 방식)
去除异常值(IQR方法)
Q1 = df['value'].quantile(0.25)
Q3 = df['value'].quantile(0.75)
IQR = Q3 - Q1
df = df[(df['value'] >= Q1 - 1.5IQR) & (df['value'] <= Q3 + 1.5IQR)]
undefinedQ1 = df['value'].quantile(0.25)
Q3 = df['value'].quantile(0.75)
IQR = Q3 - Q1
df = df[(df['value'] >= Q1 - 1.5IQR) & (df['value'] <= Q3 + 1.5IQR)]
undefinedStep 3: 통계 분석
步骤3:统计分析
python
undefinedpython
undefined기술 통계
描述性统计
print(df['numeric_column'].describe())
print(df['numeric_column'].describe())
그룹별 분석
分组分析
grouped = df.groupby('category').agg({
'value': ['mean', 'sum', 'count'],
'other': 'nunique'
})
print(grouped)
grouped = df.groupby('category').agg({
'value': ['mean', 'sum', 'count'],
'other': 'nunique'
})
print(grouped)
상관관계
相关性分析
correlation = df[['col1', 'col2', 'col3']].corr()
print(correlation)
correlation = df[['col1', 'col2', 'col3']].corr()
print(correlation)
피벗 테이블
透视表
pivot = pd.pivot_table(df,
values='sales',
index='region',
columns='month',
aggfunc='sum'
)
undefinedpivot = pd.pivot_table(df,
values='sales',
index='region',
columns='month',
aggfunc='sum'
)
undefinedStep 4: 시각화
步骤4:数据可视化
python
import matplotlib.pyplot as plt
import seaborn as snspython
import matplotlib.pyplot as plt
import seaborn as sns히스토그램
直方图
plt.figure(figsize=(10, 6))
df['value'].hist(bins=30)
plt.title('Distribution of Values')
plt.savefig('histogram.png')
plt.figure(figsize=(10, 6))
df['value'].hist(bins=30)
plt.title('数值分布')
plt.savefig('histogram.png')
박스플롯
箱线图
plt.figure(figsize=(10, 6))
sns.boxplot(x='category', y='value', data=df)
plt.title('Value by Category')
plt.savefig('boxplot.png')
plt.figure(figsize=(10, 6))
sns.boxplot(x='category', y='value', data=df)
plt.title('各分类的数值分布')
plt.savefig('boxplot.png')
히트맵 (상관관계)
热力图(相关性)
plt.figure(figsize=(10, 8))
sns.heatmap(correlation, annot=True, cmap='coolwarm')
plt.title('Correlation Matrix')
plt.savefig('heatmap.png')
plt.figure(figsize=(10, 8))
sns.heatmap(correlation, annot=True, cmap='coolwarm')
plt.title('相关性矩阵')
plt.savefig('heatmap.png')
시계열
时间序列图
plt.figure(figsize=(12, 6))
df.groupby('date')['value'].sum().plot()
plt.title('Time Series of Values')
plt.savefig('timeseries.png')
undefinedplt.figure(figsize=(12, 6))
df.groupby('date')['value'].sum().plot()
plt.title('数值的时间序列变化')
plt.savefig('timeseries.png')
undefinedStep 5: 인사이트 도출
步骤5:提炼洞察
python
undefinedpython
undefined상위/하위 분석
高低值分析
top_10 = df.nlargest(10, 'value')
bottom_10 = df.nsmallest(10, 'value')
top_10 = df.nlargest(10, 'value')
bottom_10 = df.nsmallest(10, 'value')
트렌드 분석
趋势分析
df['month'] = df['date'].dt.to_period('M')
monthly_trend = df.groupby('month')['value'].sum()
growth = monthly_trend.pct_change() * 100
df['month'] = df['date'].dt.to_period('M')
monthly_trend = df.groupby('month')['value'].sum()
growth = monthly_trend.pct_change() * 100
세그먼트 분석
细分群体分析
segments = df.groupby('segment').agg({
'revenue': 'sum',
'customers': 'nunique',
'orders': 'count'
})
segments['avg_order_value'] = segments['revenue'] / segments['orders']
undefinedsegments = df.groupby('segment').agg({
'revenue': 'sum',
'customers': 'nunique',
'orders': 'count'
})
segments['avg_order_value'] = segments['revenue'] / segments['orders']
undefinedOutput format
输出格式
분석 리포트 구조
分析报告结构
markdown
undefinedmarkdown
undefined데이터 분석 리포트
数据分析报告
1. 데이터 개요
1. 数据概述
- 데이터셋: [이름]
- 레코드 수: X,XXX
- 컬럼 수: XX
- 기간: YYYY-MM-DD ~ YYYY-MM-DD
- 数据集:[名称]
- 记录数:X,XXX
- 列数:XX
- 时间范围:YYYY-MM-DD ~ YYYY-MM-DD
2. 주요 발견
2. 主要发现
- 인사이트 1
- 인사이트 2
- 인사이트 3
- 洞察1
- 洞察2
- 洞察3
3. 통계 요약
3. 统计摘要
| 지표 | 값 |
|---|---|
| 평균 | X.XX |
| 중앙값 | X.XX |
| 표준편차 | X.XX |
| 指标 | 数值 |
|---|---|
| 平均值 | X.XX |
| 中位数 | X.XX |
| 标准差 | X.XX |
4. 권장 사항
4. 建议
- [권장 사항 1]
- [권장 사항 2]
undefined- [建议1]
- [建议2]
undefinedBest practices
最佳实践
- 데이터 이해 우선: 분석 전 데이터 구조와 의미 파악
- 점진적 분석: 간단한 분석에서 복잡한 분석으로 진행
- 시각화 활용: 패턴 발견을 위한 다양한 차트 사용
- 가정 검증: 데이터에 대한 가정을 항상 검증
- 재현 가능성: 분석 코드와 결과를 문서화
- 优先理解数据:分析前明确数据结构与含义
- 渐进式分析:从简单分析逐步过渡到复杂分析
- 善用可视化:使用多种图表发现模式
- 验证假设:始终验证关于数据的假设
- 可复现性:将分析代码与结果进行文档化
Constraints
约束规则
필수 규칙 (MUST)
必须遵守的规则(MUST)
- 원본 데이터 보존 (복사본으로 작업)
- 분석 과정 문서화
- 결과 검증
- 保留原始数据(基于副本进行操作)
- 记录分析过程
- 验证结果
금지 사항 (MUST NOT)
禁止事项(MUST NOT)
- 민감한 개인정보 노출 금지
- 근거 없는 결론 도출 금지
- 禁止泄露敏感个人信息
- 禁止得出无根据的结论
References
参考资料
Examples
示例
Example 1: Basic usage
示例1:基础用法
<!-- Add example content here -->
<!-- 添加示例内容 -->
Example 2: Advanced usage
示例2:进阶用法
<!-- Add advanced example content here -->
<!-- 添加进阶示例内容 -->