当前位置:首页 > Python > 正文

Python数据分析能做什么?全面指南与实战示例

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

开始你的Python数据分析之旅

Python提供了从数据获取到模型部署的完整生态系统,无论您是初学者还是专业数据分析师,都能找到合适的工具解决实际问题。

发表评论