温馨提示×

Python数据分析在Ubuntu如何实现

小樊
38
2025-12-18 12:11:20
栏目: 编程语言

在 Ubuntu 上搭建 Python 数据分析环境并进行 EDA 的实操指南

一 环境准备与安装

  • 更新系统并安装基础工具
    • 执行:sudo apt update && sudo apt upgrade -y
    • 安装 Python 与 pip:sudo apt install python3 python3-pip -y
  • 建议使用虚拟环境隔离依赖
    • 创建:python3 -m venv data_env
    • 激活:source data_env/bin/activate
  • 安装常用数据分析库
    • 基础:pip install numpy pandas matplotlib seaborn jupyter
    • 可选(机器学习):pip install scikit-learn
    • 可选(大数据/并行):pip install "dask[complete]"
  • 替代方案:使用 Anaconda 管理环境与包
    • 下载并安装:wget https://repo.anaconda.com/archive/Anaconda3-2024.05-Linux-x86_64.sh && bash Anaconda3-2024.05-Linux-x86_64.sh
    • 激活:source ~/.bashrc
  • 以上步骤覆盖了系统准备、venv 虚拟环境、常用库与 Anaconda 的选择,适合在 Ubuntu 上快速落地数据分析环境。

二 数据获取与清洗

  • 读取数据
    • CSV:df = pd.read_csv('data.csv')
    • Excel:df = pd.read_excel('data.xlsx', sheet_name='Sheet1')
  • 数据库读取(SQLAlchemy + PyMySQL)
    • 连接:engine = create_engine('mysql+pymysql://user:password@host:port/db')
    • 读取:data = pd.read_sql('SELECT * FROM table_name', engine)
  • 缺失值与类型处理
    • 删除缺失:df.dropna(axis=0, how='any', inplace=True)
    • 均值填充:df['col'].fillna(df['col'].mean(), inplace=True)
    • 日期解析:df['date'] = pd.to_datetime(df['date'])
  • 以上覆盖了文件、数据库与网页数据的获取,以及缺失值、类型转换等清洗要点。

三 探索性数据分析与可视化

  • 描述性统计与分布
    • 统计:df.describe()
    • 直方图:df['col'].hist(); plt.show()
  • 分组聚合与透视表
    • 分组聚合:grouped = df.groupby('category')['value'].mean()
    • 透视表:pivot = df.pivot_table(values='value', index='row', columns='col')
  • 可视化进阶(Seaborn)
    • 散点图:sns.scatterplot(x='total_bill', y='tip', data=tips); plt.show()
    • 箱线图:sns.boxplot(x='species', y='petal_length', data=iris); plt.show()
  • 以上流程可快速完成 EDA 的关键环节:统计概览、分布可视化、分组对比与关系探索。

四 交互式分析与远程访问

  • 启动 Jupyter Notebook
    • 安装:pip install notebook
    • 启动:jupyter notebook(默认浏览器打开 http://localhost:8888
  • 远程服务器场景(云主机/局域网)
    • 生成配置:jupyter notebook --generate-config
    • 配置要点(~/.jupyter/jupyter_notebook_config.py):
      • c.NotebookApp.ip = '0.0.0.0'
      • c.NotebookApp.open_browser = False
      • c.NotebookApp.port = 8888
    • 启动:jupyter notebook(如以 root 运行:jupyter notebook --allow-root
    • 安全组/防火墙需放行 TCP 8888 端口,客户端通过 http://服务器IP:8888 访问
  • 以上步骤覆盖本地与远程的 Jupyter 使用,适合协作与演示。

五 常见问题与优化建议

  • 优先使用虚拟环境(venv/conda)隔离项目依赖,避免版本冲突
  • 处理大数据时,优先考虑分块读取与并行框架(如 Dask),提升内存与计算效率
  • 远程访问务必限制来源 IP、设置强口令/Token,并仅开放必要端口
  • 可视化若中文乱码,安装中文字体并在 Matplotlib 中设置字体;绘图大量数据时可降采样或启用 Agg 后端保存图片
  • 生产/复现实验建议使用 requirements.txt 或 Conda 环境文件管理依赖版本

0