1. 安装Python基础环境
Ubuntu系统通常自带Python 3,但需确认版本(建议3.6及以上)并安装pip(Python包管理工具)。通过以下命令完成:
sudo apt update
sudo apt install python3 python3-pip
# 验证安装
python3 --version # 查看Python版本
pip3 --version # 查看pip版本
若需更新pip至最新版,可运行:pip3 install --upgrade pip。
2. 配置虚拟环境(可选但推荐)
为避免不同项目的依赖冲突,建议使用venv创建隔离的虚拟环境:
python3 -m venv myenv # 创建名为myenv的虚拟环境
source myenv/bin/activate # 激活环境(激活后终端提示符会显示环境名)
# 退出环境:deactivate
虚拟环境激活后,后续安装的库仅对当前环境有效。
3. 安装核心数据科学库
通过pip安装Python数据科学必备库,覆盖数值计算、数据处理、可视化及机器学习:
pip3 install numpy pandas matplotlib seaborn scikit-learn jupyter
DataFrame(二维表格)等高效数据结构;4. 数据获取与预处理
使用Pandas读取各类数据源(如CSV、Excel、数据库),并进行清洗与转换:
import pandas as pd
# 读取CSV文件(常用分隔符:csv用',',tsv用'\t')
data = pd.read_csv('data.csv')
# 读取Excel文件(需安装openpyxl:pip3 install openpyxl)
# data = pd.read_excel('data.xlsx', sheet_name='Sheet1')
# 数据清洗:删除缺失值(整行删除)
data = data.dropna()
# 填充缺失值(用列均值填充)
data['column_name'].fillna(data['column_name'].mean(), inplace=True)
# 转换数据类型(如将字符串日期转为datetime)
data['date_column'] = pd.to_datetime(data['date_column'])
# 提取日期特征(如年、月、日)
data['year'] = data['date_column'].dt.year
以上步骤可解决数据中的常见问题,为后续分析奠定基础。
5. 数据探索性分析(EDA)
通过描述性统计与可视化快速了解数据分布与特征:
# 描述性统计(统计量:均值、标准差、最小值、四分位数等)
print(data.describe())
# 分组聚合(按类别分组计算均值)
grouped = data.groupby('category_column')['value_column'].mean()
print(grouped)
# 数据透视表(交叉分析两个分类变量与数值变量的关系)
pivot = data.pivot_table(values='value_column',
index='row_column',
columns='column_column',
aggfunc='mean')
print(pivot)
# 可视化:绘制直方图(查看数值分布)
import matplotlib.pyplot as plt
data['value_column'].hist(bins=30)
plt.xlabel('Value')
plt.ylabel('Frequency')
plt.title('Distribution of Value Column')
plt.show()
# 可视化:绘制箱线图(查看异常值)
import seaborn as sns
sns.boxplot(x='category_column', y='value_column', data=data)
plt.show()
EDA能帮助发现数据中的规律(如某类别均值显著高于其他)、异常值(如箱线图中的离群点)及变量间的相关性。
6. 数据分析与机器学习
使用Pandas进行高级数据处理,结合Scikit-learn构建机器学习模型:
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
# 特征与目标变量分离(假设预测'sales')
X = data[['feature1', 'feature2']] # 特征列
y = data['sales'] # 目标列
# 划分训练集与测试集(80%训练,20%测试)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 训练线性回归模型
model = LinearRegression()
model.fit(X_train, y_train)
# 预测与评估
y_pred = model.predict(X_test)
mse = mean_squared_error(y_test, y_pred)
print(f'Mean Squared Error: {mse}')
以上示例展示了机器学习的基本流程(数据划分、模型训练、预测、评估),可根据需求替换为分类(如逻辑回归)、聚类(如K-Means)等算法。
7. 使用Jupyter Notebook进行交互式分析
Jupyter Notebook是数据科学家的“利器”,支持代码、Markdown文本与可视化结合,便于记录分析过程:
# 启动Jupyter Notebook(需在虚拟环境中运行)
jupyter notebook
启动后,终端会显示访问链接(如http://localhost:8888),在浏览器中打开即可。新建Notebook时选择“Python 3”内核,即可开始编写代码(如上述数据读取、分析步骤),并通过Markdown单元格添加注释与结论。
8. 可选扩展:数据库连接与Web部署
sqlalchemy与对应驱动读取数据:from sqlalchemy import create_engine
# MySQL连接(需安装pymysql:pip3 install pymysql)
engine = create_engine('mysql+pymysql://username:password@localhost:3306/database_name')
data = pd.read_sql('SELECT * FROM table_name', engine)
from flask import Flask, render_template
import pandas as pd
app = Flask(__name__)
@app.route('/')
def home():
data = pd.read_csv('data.csv')
avg = data['value_column'].mean()
return render_template('index.html', average=avg) # 需创建templates/index.html模板
if __name__ == '__main__':
app.run(debug=True)
部署时需将代码上传至服务器(如Ubuntu云服务器),配置Nginx反向代理与Gunicorn WSGI服务器,提升应用性能与稳定性。