Debian系統下使用Python進行數據分析的完整流程
Debian系統默認倉庫包含Python3,首先更新系統包列表并安裝Python3及pip(Python包管理工具):
sudo apt update && sudo apt upgrade -y # 更新系統
sudo apt install python3 python3-pip -y # 安裝Python3和pip
驗證安裝:
python3 --version # 查看Python版本(建議3.6+)
pip3 --version # 查看pip版本
使用pip安裝Python數據分析的核心庫,覆蓋數據處理、數值計算、可視化及機器學習:
pip3 install pandas numpy matplotlib seaborn scikit-learn scipy statsmodels jupyterlab -y
通過pandas讀取常見數據源(如CSV、Excel、SQL數據庫):
import pandas as pd
# 讀取CSV文件
data = pd.read_csv('data.csv')
# 讀取Excel文件
# data = pd.read_excel('data.xlsx')
# 查看數據前5行
print(data.head())
處理數據中的缺失值、重復值、異常值及格式問題:
# 檢查缺失值
print(data.isnull().sum())
# 刪除含缺失值的行
data.dropna(inplace=True)
# 填充缺失值(如用均值填充'Age'列)
# data['Age'].fillna(data['Age'].mean(), inplace=True)
# 刪除重復值
data.drop_duplicates(inplace=True)
# 轉換數據類型(如將'Price'列轉為整數)
# data['Price'] = data['Price'].astype(int)
# 處理異常值(如刪除'Age'列中超過120的值)
# data = data[data['Age'] <= 120]
通過統計分析與可視化了解數據特征:
# 描述性統計(計算均值、標準差、分位數等)
desc_stats = data.describe()
print(desc_stats)
# 分組聚合(如按'Category'列計算銷售額均值)
group_stats = data.groupby('Category')['Sales'].mean()
print(group_stats)
# 相關性分析(計算數值列的相關系數矩陣)
corr_matrix = data.corr()
print(corr_matrix)
# 數據可視化(直方圖:展示'Age'分布)
import matplotlib.pyplot as plt
import seaborn as sns
plt.figure(figsize=(10, 6))
sns.histplot(data['Age'], bins=20, kde=True)
plt.title('Age Distribution')
plt.xlabel('Age')
plt.ylabel('Frequency')
plt.show()
# 箱線圖:展示不同'Species'的'Petal Length'分布
sns.boxplot(x='Species', y='Petal_Length', data=iris)
plt.title('Petal Length by Species')
plt.show()
使用scikit-learn構建簡單的線性回歸模型(以預測房價為例):
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score
# 準備特征(X)與目標變量(y)
X = data[['Size', 'Bedrooms']] # 特征列
y = data['Price'] # 目標列
# 劃分訓練集與測試集(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)
r2 = r2_score(y_test, y_pred)
print(f'Mean Squared Error: {mse:.2f}')
print(f'R^2 Score: {r2:.2f}')
通過可視化或報告呈現分析結論:
# 導出清洗后的數據
data.to_csv('cleaned_data.csv', index=False)
# 導出分析結果(如描述性統計)
desc_stats.to_excel('desc_stats.xlsx')
python3 -m venv myenv # 創建虛擬環境
source myenv/bin/activate # 激活虛擬環境(Debian/Ubuntu)
pip install pandas numpy matplotlib seaborn scikit-learn jupyterlab # 在虛擬環境中安裝庫
jupyter lab # 啟動Jupyter Lab(默認端口8888)
pip3 install --upgrade pandas numpy matplotlib seaborn scikit-learn
通過以上步驟,可在Debian系統上完成從數據收集到建模的全流程數據分析任務。根據具體需求,可擴展使用其他庫(如TensorFlow/PyTorch用于深度學習、NLTK用于自然語言處理)。