在开始前,需确保CentOS系统为最新状态,避免因系统版本过旧导致兼容性问题:
sudo yum update -y # 更新所有系统包
安装Python 3(CentOS 7及以上默认包含Python 3,若未安装可通过以下命令安装):
sudo yum install python3 -y
安装pip(Python包管理工具,用于后续安装数据分析库):
sudo yum install python3-pip -y
数据分析需依赖以下常用库,可通过pip批量安装:
pip3 install numpy pandas matplotlib seaborn scikit-learn
为避免不同项目间的依赖冲突,建议使用虚拟环境隔离项目环境:
# 创建虚拟环境(以“data_analysis”为例)
python3 -m venv data_analysis
# 激活虚拟环境
source data_analysis/bin/activate
激活后,后续安装的库将仅在该环境中生效,不影响系统全局Python环境。
Jupyter Notebook是交互式数据分析的利器,支持代码、文本与可视化结果混合展示:
pip3 install notebook
启动Jupyter Notebook:
jupyter notebook
终端会显示访问链接(如http://localhost:8888),在浏览器中打开即可开始交互式数据分析。
以下是一个完整的数据分析流程示例,涵盖数据导入、清洗、分析与可视化:
使用Pandas读取CSV文件(假设存在data.csv文件):
import pandas as pd
data = pd.read_csv('data.csv') # 读取数据
print(data.head()) # 查看前5行数据
处理缺失值与异常值(如用0填充缺失值):
print(data.isnull().sum()) # 检查各列缺失值数量
data.fillna(0, inplace=True) # 填充缺失值为0
print(data.dtypes) # 确认数据类型(如数值型、字符串型)
使用Pandas进行描述性统计(如均值、标准差、分位数)与分组聚合:
print(data.describe()) # 数值列的描述性统计
avg_salary = data.groupby('Department')['Salary'].mean() # 按部门分组计算平均薪资
print(avg_salary)
使用Matplotlib与Seaborn绘制图表(如柱状图、箱线图):
import matplotlib.pyplot as plt
import seaborn as sns
# 柱状图:各部门平均薪资
plt.figure(figsize=(10, 6))
avg_salary.plot(kind='bar')
plt.title('Average Salary by Department')
plt.xlabel('Department')
plt.ylabel('Average Salary')
plt.show()
# 箱线图:薪资分布
plt.figure(figsize=(10, 6))
sns.boxplot(x='Department', y='Salary', data=data)
plt.title('Salary Distribution by Department')
plt.show()
数据库配置:若需处理数据库中的数据,可安装MySQL/PostgreSQL驱动(如pymysql、psycopg2),使用SQLAlchemy建立连接:
pip3 install pymysql sqlalchemy
示例代码(连接MySQL并查询数据):
from sqlalchemy import create_engine
import pandas as pd
engine = create_engine('mysql+pymysql://user:password@localhost/dbname')
query = "SELECT * FROM employees"
data = pd.read_sql(query, engine)
Web部署:若需将分析结果封装为Web应用,可使用Flask框架创建API或网页:
pip3 install flask
示例代码(Flask应用):
from flask import Flask, jsonify
import pandas as pd
app = Flask(__name__)
@app.route('/data')
def get_data():
data = pd.read_csv('data.csv')
return jsonify(data.to_dict(orient='records'))
if __name__ == '__main__':
app.run(debug=True)
通过以上步骤,即可在CentOS环境下搭建Python数据分析环境,完成从数据采集、清洗到分析、可视化的完整流程。根据实际需求,可进一步扩展机器学习模型、大数据处理(如Dask)或性能优化(如GPU加速)等功能。