python---數據分析實戰

數據預處理

數據預處理分爲數據清洗、數據集成、數據變換和數據規約。
數據清洗就是刪除無關數據、重複數據、平滑噪聲數據、處理缺失值和異常值

缺失值處理辦法

以下是處理缺失值的方法:刪除記錄,數據填補,和不處理。

  • 刪除記錄 簡單粗暴 在樣本數據量十分大且缺失值不多的情況下非常有效,但如果樣本量本身不大且缺失也不少,那麼 不建議使用

完整操作代碼鏈接刪除缺失值code

""" 刪除缺失數據 """
 import  pandas as pd import  numpy as np
# 創建一個帶有缺失值的DataFrame對象
 df = pd.DataFrame(np.arange(12).reshape((3, 4)), index=['user1', 'user2', 'user3'], columns=['views', 'likes', 'transfers', 'saves']) 
 print("源數據: \n", df) 
 df.loc[:2, :1]= np.nan print("缺失值數據: \n", df)
# 刪除行,使用參數axis=0 
print(df.dropna(axis=0))
# 刪除列, 使用參數axis=1
 print(df.dropna(axis=1))
# 刪除數據表中含有空值的行
 print(df.dropna())
  • 數據填補

對缺失值的插補大體可分爲兩種:替換缺失值,擬合缺失值,虛擬變量。替換是通過數據中非缺失數據 的相似性來填補,其核心思想是發現相同羣體的共同特徵,擬合是通過其他特徵建模來填補,虛擬變量 是衍生的新變量代替缺失值。

均值插補。
1.對於定類數據:使用 衆數(mode)填補,
比如一個學校的男生和女生的數量,男生500 人,女生50人,那麼對於其餘的缺失值我們會用人數較多的男生來填補。
2.對於定量(定比)數據:使用平均數(mean)或中位數(median)填補.
比如一個 班級學生的身高特徵,對於一些同學缺失的身高值就可以使用全班同學身高的平均值或 中位數來填補。

完整操作代碼鏈接缺失值的填補code

""" 均值差補 """
 import numpy as np 
 import  pandas as pd 
 df = pd.DataFrame(np.arange(12).reshape((4, 3)), index=['user1', 'user2', 'user3', 'user4'], columns=['price', 'count', 'info']) 
 df['price'][:1] = np.nan 
 df['price'][3] = 3
print("缺失值數據: \n", df)
 # 使用price均值對NA進行填充 
 df_mean = df['price'].fillna(df['price'].mean()) 
 # 使用price中位數對NA進行填充
df_median = df['price'].fillna(df['price'].median())
 # 使用price衆數對NA進行填充
 df_mode = df['price'].fillna(df['price'].mode())
print("均值填充: \n", df_mean)
 print("中位數填充: \n", df_median)
 print("衆數填充: \n", df_median)

小案例:股票相關曲線分析與繪圖

案例要求:

  1. 近一月股票收盤價走勢曲線
  2. 5日均線、10日均線以及20日均線
  3. 每日收盤價漲跌幅度 diff(差值)/pct_change(漲/跌幅百分比)

完整操作代碼鏈接stock.code

小案例:量化股票提醒系統

案例需求:

量化股票提醒/預警系統分下面幾個部分:
1. 實時獲取股票數據
2. 連接郵件服務器
3. 預警配置管理
4. 監控數據併發送郵件
最終通過實時提醒,來提高交易的收益率。結合crontab定時任務, 每天9點30開始執行該腳本

完整操作代碼鏈接: 量化股票提醒系統code

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章