溫馨提示×

Ubuntu Python數據分析實戰案例

小樊
45
2025-08-11 16:30:38
欄目: 編程語言

以下是基于Ubuntu環境的Python數據分析實戰案例,涵蓋環境搭建、數據處理到可視化全流程:

案例1:用戶行為數據分析(基于模擬數據)

場景:分析用戶登錄日志,統計活躍時段、異常登錄等
步驟

  1. 環境準備
    sudo apt update  
    sudo apt install python3 python3-pip  
    pip3 install pandas numpy matplotlib seaborn  
    
  2. 數據模擬與讀取
    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'])  
    
  3. 數據清洗與分析
    # 轉換時間格式,刪除無效數據  
    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')]  
    
  4. 可視化
    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()  
    

案例2:電商銷售數據趨勢分析

場景:分析某電商平臺月度銷售額、商品類別占比及用戶地域分布
步驟

  1. 數據準備
    從Kaggle獲取電商數據集(如sales_data.csv),包含字段:order_id、product_id、category、price、region、order_date。
  2. 數據處理
    # 讀取數據  
    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()  
    
  3. 可視化分析
    # 月度銷售額折線圖  
    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()  
    

案例3:多源數據關聯分析(用戶畫像)

場景:結合用戶基本信息與行為數據生成標簽
步驟

  1. 數據準備
    • 用戶基本信息表:users.csv(含user_id、age、gender、region
    • 用戶行為數據表:user_actions.csv(含user_id、page_views、purchase_count、login_days
  2. 數據關聯與特征工程
    # 合并數據  
    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'])  
    
  3. 可視化用戶分布
    # 地域-活躍度熱力圖  
    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()  
    

關鍵工具與庫說明

  • 基礎處理:Pandas(數據清洗、轉換)、NumPy(數值計算)
  • 可視化:Matplotlib(基礎圖表)、Seaborn(高級統計圖表)
  • 大數據場景:PySpark(分布式計算,適合超大規模數據)
  • 交互式分析:Jupyter Notebook(支持代碼、可視化混排)

以上案例可根據實際數據集調整,重點演示Ubuntu下Python數據分析的核心流程,涵蓋從數據獲取到洞察的全鏈路操作。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女