为什么选择 Python 做数据分析
Python 是目前数据分析领域使用最广泛的编程语言,原因很简单:
- 生态丰富 — Pandas、NumPy、Matplotlib、Scikit-learn 等库覆盖了数据处理的各个环节
- 上手快 — 语法简洁,几行代码就能完成从数据读取到可视化展示
- 社区活跃 — 遇到问题很容易搜索到解决方案
- 就业需求大 — 数据分析岗位 JD 里 Python 几乎是标配
核心工具链
Pandas — 数据处理的核心
Pandas 提供了 DataFrame 和 Series 两种核心数据结构,可以方便地进行数据清洗、转换和分析。
import pandas as pd
# 读取数据
df = pd.read_csv('sales_data.csv')
# 查看基本信息
print(df.info()) # 列类型、缺失值概览
print(df.describe()) # 数值列的统计摘要
# 数据筛选
high_sales = df[df['sales_amount'] > 10000]
# 分组聚合
monthly = df.groupby('month')['sales_amount'].agg(['sum', 'mean', 'count'])
print(monthly)
NumPy — 数值计算基础
NumPy 的 ndarray 是高性能多维数组,Pandas 的底层就基于 NumPy。
import numpy as np
# 创建数组
arr = np.array([1, 2, 3, 4, 5])
# 向量化运算(比 Python 循环快几十倍)
result = arr * 2 + 1
# 统计函数
print(np.mean(arr), np.std(arr), np.median(arr))
Matplotlib / Plotly — 数据可视化
import matplotlib.pyplot as plt
# 折线图
plt.plot(df['date'], df['sales_amount'])
plt.title('月度销售额趋势')
plt.xlabel('日期')
plt.ylabel('销售额')
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()
Plotly 适合做交互式图表,支持缩放、悬停提示等功能。
import plotly.express as px
fig = px.line(df, x='date', y='sales_amount', title='销售额趋势')
fig.show()
数据分析的标准流程
数据获取 → 数据清洗 → 探索性分析 → 建模分析 → 结果呈现
1. 数据获取
数据来源多样:CSV/Excel 文件、SQL 数据库、Web API、网页爬虫。
# 从 CSV 读取
df = pd.read_csv('data.csv')
# 从 SQL 读取
from sqlalchemy import create_engine
engine = create_engine('mysql://<DB_USER>:<DB_PASSWORD>@<DB_HOST>/<DB_NAME>')
df = pd.read_sql('SELECT * FROM orders', engine)
# 从 API 获取
import requests
resp = requests.get('https://api.example.com/data')
df = pd.DataFrame(resp.json())
2. 数据清洗
真实数据往往不干净,需要处理缺失值、重复值、异常值。
# 检查缺失值
print(df.isnull().sum())
# 填充缺失值
df['age'].fillna(df['age'].median(), inplace=True)
# 删除重复行
df.drop_duplicates(inplace=True)
# 处理异常值(IQR 方法)
Q1 = df['price'].quantile(0.25)
Q3 = df['price'].quantile(0.75)
IQR = Q3 - Q1
df = df[(df['price'] >= Q1 - 1.5 * IQR) & (df['price'] <= Q3 + 1.5 * IQR)]
3. 探索性分析(EDA)
通过描述统计和可视化理解数据特征。
# 相关性分析
corr = df.corr()
print(corr['target'].sort_values(ascending=False))
# 分布分析
df['category'].value_counts().plot(kind='bar')
4-5. 建模与呈现
根据业务需求选择合适的模型(回归、分类、聚类),最终输出可视化报告或数据看板。
学习资源推荐
- 书籍:《利用 Python 进行数据分析》(Wes McKinney,Pandas 作者)
- 平台:Kaggle — 有大量真实数据集和 Notebook 供学习
- 练习:从自己感兴趣的数据入手(比如分析自己的消费记录、运动数据)
写在最后
数据分析的核心不是工具,而是从数据中发现问题的能力。工具可以速成,但业务理解需要积累。建议边学边做项目,拿真实数据练手进步最快。