以下是基于Ubuntu環境的Python數據分析實戰案例,涵蓋環境搭建、數據處理到可視化全流程:
場景:分析用戶登錄日志,統計活躍時段、異常登錄等
步驟:
sudo apt update
sudo apt install python3 python3-pip
pip3 install pandas numpy matplotlib seaborn
import pandas as pd
# 模擬用戶登錄日志(實際可從CSV/數據庫讀?。?
data = pd.DataFrame({
'user_id': [1, 2, 1, 3, 2, 1],
'login_time': ['2025-08-01 08:00', '2025-08-01 10:30', '2025-08-02 09:15',
'2025-08-02 23:45', '2025-08-03 14:00', '2025-08-03 00:10'],
'status': ['success', 'success', 'success', 'fail', 'success', 'fail']
})
data['login_time'] = pd.to_datetime(data['login_time'])
# 轉換時間格式,刪除無效數據
data = data.dropna().sort_values('login_time')
# 按小時統計登錄次數
data['hour'] = data['login_time'].dt.hour
login_stats = data.groupby('hour')['user_id'].count().reset_index()
# 異常登錄檢測(如非工作時段登錄)
abnormal_logins = data[(data['hour'] < 8) | (data['hour'] > 18) & (data['status'] == 'success')]
import matplotlib.pyplot as plt
# 繪制活躍時段分布圖
plt.bar(login_stats['hour'], login_stats['user_id'], color='skyblue')
plt.xlabel('Hour of Day')
plt.ylabel('Login Count')
plt.title('User Active Hours')
plt.show()
場景:分析某電商平臺月度銷售額、商品類別占比及用戶地域分布
步驟:
sales_data.csv
),包含字段:order_id
、product_id
、category
、price
、region
、order_date
。# 讀取數據
sales_data = pd.read_csv('sales_data.csv')
# 轉換日期格式,提取月份
sales_data['order_date'] = pd.to_datetime(sales_data['order_date'])
sales_data['month'] = sales_data['order_date'].dt.month
# 按月統計銷售額
monthly_sales = sales_data.groupby('month')['price'].sum().reset_index()
# 按商品類別統計銷售額占比
category_sales = sales_data.groupby('category')['price'].sum().sort_values(ascending=False)
# 按地域統計訂單量
region_orders = sales_data['region'].value_counts().reset_index()
# 月度銷售額折線圖
plt.plot(monthly_sales['month'], monthly_sales['price'], marker='o', color='green')
plt.title('Monthly Sales Trend')
plt.xlabel('Month')
plt.ylabel('Sales Amount')
plt.grid(True)
plt.show()
# 商品類別占比餅圖
plt.pie(category_sales, labels=category_sales.index, autopct='%1.1f%%', startangle=90)
plt.title('Product Category Distribution')
plt.show()
場景:結合用戶基本信息與行為數據生成標簽
步驟:
users.csv
(含user_id
、age
、gender
、region
)user_actions.csv
(含user_id
、page_views
、purchase_count
、login_days
)# 合并數據
user_profile = pd.merge(users, user_actions, on='user_id', how='left')
# 計算用戶活躍度標簽
user_profile['activity_level'] = pd.cut(user_profile['login_days'],
bins=[-1, 30, 90, 180],
labels=['Low', 'Medium', 'High'])
# 計算用戶價值標簽(基于購買金額與瀏覽量)
user_profile['value_score'] = user_profile['purchase_count'] * 10 + user_profile['page_views']
user_profile['value_label'] = pd.cut(user_profile['value_score'],
bins=[0, 100, 500, 1000],
labels=['Low Value', 'Medium Value', 'High Value'])
# 地域-活躍度熱力圖
import seaborn as sns
pivot_table = user_profile.pivot_table(index='region', columns='activity_level',
values='user_id', aggfunc='count', fill_value=0)
sns.heatmap(pivot_table, annot=True, cmap='YlGnBu')
plt.title('User Activity by Region')
plt.show()
以上案例可根據實際數據集調整,重點演示Ubuntu下Python數據分析的核心流程,涵蓋從數據獲取到洞察的全鏈路操作。