在Python数据分析领域,掌握核心工具库能让你效率倍增。本文精选10个高实用性库,结合代码示例详解从数据处理到机器学习的全流程操作,助你快速进阶数据分析高手。
一、Pandas:结构化数据处理的全能选手
Pandas擅长处理表格数据,提供高效的数据清洗与转换功能:
# 读取Excel文件并处理缺失值
import pandas as pd
df = pd.read_excel('customer_data.xlsx')
df['age'].fillna(df['age'].median(), inplace=True) # 用中位数填充年龄缺失值
# 数据转换:将日期字符串转为日期格式
df['register_date'] = pd.to_datetime(df['register_date'])
二、NumPy:多维数组运算的加速引擎
NumPy提供高效的数值计算能力,适合处理大规模数据:
import numpy as np
# 创建数组并执行向量化运算
sales = np.array([1200, 1500, 800, 2000])
commission = sales * 0.05 # 计算5%的佣金
total = np.sum(sales) # 总销售额:5500
三、Matplotlib:基础图表绘制的瑞士军刀
Matplotlib可快速生成折线图、散点图等基础可视化图表:
import matplotlib.pyplot as plt
# 绘制分组柱状图
products = ['A', 'B', 'C']
sales = [120, 150, 90]
plt.bar(products, sales, color=['#1f77b4', '#ff7f0e', '#2ca02c'])
plt.title('Product Sales Comparison')
plt.show()
四、Seaborn:统计可视化的颜值担当
Seaborn基于Matplotlib,能生成更美观的统计图表:
import seaborn as sns
# 绘制热图分析相关性
corr_matrix = df.corr()
sns.heatmap(corr_matrix, annot=True, cmap='coolwarm')
plt.title('Feature Correlation Heatmap')
plt.show()
五、Plotly:交互式图表的动态专家
Plotly支持交互式可视化,适合生成动态报表:
import plotly.express as px
# 生成交互式地图
fig = px.choropleth(df, locations='state', color='sales',
hover_data=['city', 'revenue'],
color_continuous_scale='Viridis')
fig.show()
六、Scikit-learn:机器学习预处理的瑞士军刀
Scikit-learn提供数据预处理和模型训练工具:
from sklearn.preprocessing import StandardScaler
# 特征标准化
scaler = StandardScaler()
X_scaled = scaler.fit_transform(df[['price', 'advertising']])
七、Dask:分布式计算的并行先锋
Dask用于处理超大数据集,支持分布式计算:
import dask.dataframe as dd
# 分块读取CSV文件
ddf = dd.read_csv('large_sales.csv')
average = ddf.groupby('category')['sales'].mean().compute()
八、PySpark:大数据分析的分布式引擎
PySpark适合处理海量数据,支持分布式计算:
from pyspark.sql import SparkSession
# 初始化Spark会话
spark = SparkSession.builder.appName("SalesAnalysis").getOrCreate()
df_spark = spark.read.csv('sales_data.csv', header=True, inferSchema=True)
# 分布式计算销售额Top5
df_spark.orderBy(df_spark['sales'].desc()).show(5)
九、Bokeh:交互式可视化的轻量级选择
Bokeh生成交互式图表,适合Web应用集成:
from bokeh.plotting import figure, show
# 创建交互式散点图
p = figure(title="Sales vs. Price", x_axis_label='Price', y_axis_label='Sales')
p.circle(df['price'], df['sales'], size=10, color='blue', alpha=0.5)
show(p)
十、Prophet:时间序列预测的神器
Prophet擅长处理时间序列数据,提供高精度预测:
from prophet import Prophet
# 构建预测模型
df_prophet = df[['register_date', 'sales']].rename(columns={'register_date': 'ds', 'sales': 'y'})
model = Prophet()
model.fit(df_prophet)
future = model.make_future_dataframe(periods=365)
forecast = model.predict(future)
model.plot(forecast)
你在数据分析中遇到过哪些库无法解决的难题?欢迎在评论区留言讨论!