上一篇
Python数据分析能做什么?全面指南与实战示例
- Python
- 2025-08-04
- 1619
Python数据分析:能力与应用全面指南
探索Python在数据科学领域的强大功能,从基础处理到高级分析技术
Python数据分析核心能力概览
数据清洗与预处理
处理缺失值、异常值检测、数据转换、特征工程
数据可视化
创建静态、动态和交互式图表,揭示数据洞见
统计分析
描述性统计、假设检验、回归分析、概率分布
机器学习
分类、回归、聚类、深度学习模型实现
数据清洗与预处理实战
数据清洗是数据分析的第一步,Python的Pandas库提供了强大的数据处理能力:
import pandas as pd
import numpy as np
# 创建示例数据集
data = {
'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eva'],
'Age': [25, 32, np.nan, 45, 28],
'Salary': [50000, 62000, 48000, np.nan, 53000],
'Department': ['HR', 'IT', 'IT', 'Finance', 'Marketing']
}
df = pd.DataFrame(data)
# 处理缺失值
df['Age'].fillna(df['Age'].mean(), inplace=True)
df['Salary'].fillna(df['Salary'].median(), inplace=True)
# 创建新特征
df['SalaryCategory'] = pd.cut(df['Salary'],
bins=[0, 50000, 60000, 100000],
labels=['Low', 'Medium', 'High'])
# 数据转换
df['Senior'] = df['Age'].apply(lambda x: 'Yes' if x > 35 else 'No')
print("处理后的数据集:")
print(df.head())
处理结果说明:
- 填充了年龄的平均值(32.5)和工资的中位数(51500)
- 创建了新的工资类别特征
- 添加了员工是否资深的新字段
- 输出处理后的数据集前五行
数据可视化示例
Python的Matplotlib和Seaborn库可以创建丰富的可视化图表:
import matplotlib.pyplot as plt
import seaborn as sns
# 使用泰坦尼克数据集
titanic = sns.load_dataset('titanic')
# 创建图表
plt.figure(figsize=(12, 6))
# 生存率与乘客等级关系
plt.subplot(1, 2, 1)
sns.barplot(x='class', y='survived',
data=titanic, palette='viridis')
plt.title('不同舱位等级生存率')
# 年龄分布
plt.subplot(1, 2, 2)
sns.histplot(titanic['age'].dropna(),
bins=30, kde=True, color='skyblue')
plt.title('乘客年龄分布')
plt.tight_layout()
plt.show()
可视化结果说明:
- 左侧图表:展示不同舱位等级乘客的生存率差异
- 右侧图表:显示乘客年龄的分布情况
- 使用Seaborn简化了高级统计图表的创建
- Matplotlib提供灵活的图表布局和样式控制
机器学习应用实例
Python的Scikit-learn库提供了完整的机器学习工作流实现:
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score
# 加载鸢尾花数据集
iris = load_iris()
X = iris.data
y = iris.target
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=42
)
# 创建随机森林分类器
clf = RandomForestClassifier(n_estimators=100, random_state=42)
clf.fit(X_train, y_train)
# 预测并评估模型
y_pred = clf.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(f"模型准确率: {accuracy:.2f}")
# 特征重要性分析
feature_importances = clf.feature_importances_
features = iris.feature_names
print("\n特征重要性:")
for feature, importance in zip(features, feature_importances):
print(f"{feature}: {importance:.4f}")
代码解析:
- 加载经典鸢尾花数据集
- 使用随机森林分类器进行训练
- 评估模型在测试集上的准确率
- 分析各特征对分类结果的重要性
输出结果示例:
模型准确率: 1.00 特征重要性: sepal length (cm): 0.1123 sepal width (cm): 0.0231 petal length (cm): 0.4411 petal width (cm): 0.4235
Python数据分析生态系统
数据处理
Pandas, NumPy, Dask
数据可视化
Matplotlib, Seaborn, Plotly
机器学习
Scikit-learn, XGBoost, LightGBM
深度学习
TensorFlow, PyTorch, Keras
本文由ShaoYiTai于2025-08-04发表在吾爱品聚,如有疑问,请联系我们。
本文链接:https://521pj.cn/20257308.html
发表评论