import pandas as pd
import numpy as np
# 缺失值檢測
# 載入資料
# data = pd.read_excel('qs.xlsx')
# print(data)
# 利用isnull進行空值判斷 -->返回bool df ,如果為true, 就是空值,如果為false,就是真實值
# print(data.isnull())
# 與sum連用,統計每一列空值個數
# print(data.isnull().sum())
# 利用notnull進行空值判斷 -->返回bool df ,如果為true, 就是真實值,如果為false,就是空值
# print(data.notnull())
# 與sum連用,統計每一列真實值個數
# print(data.notnull().sum())
# 缺失值處理
# 刪除法
# axis = 0 ,刪除行
# any 只要行裡面有空值,就刪除整行
# inplace = true 替換原文本
# all 只有整行整列資料全為空值就刪除
# data.dropna(axis=0,how='any',inplace=true)
# print(data)
# 刪除法 --》存在na就刪除----》對資料影響較大(慎用)
# 如果某一行或者某一列資料存在大量的缺失值,這個時候就可以使用刪除法刪除
# 填充法
# 使用fillna進行填充,需要制定填充的內容,inplace是否覆蓋原來資料
# 注意填充的數值型資料,可以使用均值,眾數,中位數進行填充
# 類別型資料需要使用眾數進行填充
# data['門店編號'].fillna('cdnl', inplace=true)
# print(data)
# 填充值必須為單個數值,不可以為序列,眾數不唯一,取下標獲取單個眾數
# data['類別id'].fillna(data['類別id'].mode()[0], inplace=true)
# print(data)
# 填充法應用
# 例如:**中只有少量資料為缺失狀態,就可以使用填充法,填充的時候需要注意,填充的結果不能對後續的分析產生不利的影響
# 插值法
# 線性插值法、多項式插值、樣條插值
# 線性插值 --》擬合線性方程進行差值
# 多項式差值 --》通過擬合多項式進行差值,通常使用拉格朗日插值,牛頓插值
# 樣條插值
# 匯入我們的插值模組
from scipy.interpolate import interp1d # 線性插值模組
from scipy.interpolate import lagrange # 拉格朗日插值模組
from scipy.interpolate import spline # 樣條插值模組
x = np.array([1, 2, 3, 4, 5, 8, 9])
y1 = np.array([3, 5, 7, 9, 11, 17, 19])
y2 = np.array([2, 8, 18, 32, 50, 128, 162])
# 線性插值
# linear1 = interp1d(x, y1, kind='linear')
# linear2 = interp1d(x, y2, kind='linear')
# print(linear1([6, 7])) #y1缺失值[13. 15.] --》[13, 15]
# print(linear2([6, 7])) #y2 缺失值[ 76. 102.] -->[76, 98]
# 拉格朗日插值模組
# la1 = lagrange(x=x, w=y1)
# la2 = lagrange(x=x, w=y2)
# print(la1([6, 7])) # y1缺失值[13. 15.] --》[13, 15]
# print(la2([6, 7])) # y2 缺失值[ 76. 102.] -->[76, 98]
# 樣條插值
# print(spline(xk=x, yk=y1,xnew=[6,7])) # y1缺失值[13. 15.] --》[13, 15]
# print(spline(xk=x, yk=y2,xnew=[6,7])) # y2 缺失值[ 76. 102.] -->[76, 98]
# 多項式插值、樣條插值在非線性、線性裡面效果都不錯
# 線性關係在現實生活中並不多見,以後遇到的插值方式選擇多項式插值、樣條插值
# scipy也是一種科學計算庫
# nan -->float型別
# 遇到非np.nan 型別空值 可以替換為np.nan 在進行插值
# date = data.replace('*', np.nan)
pandas 高階處理 分組與聚合
分組與聚合通常是分析資料的一種方式,通常與一些統計函式一起使用,檢視資料的分組情況 想一想其實剛才的交叉表與透視表也有分組的功能,所以算是分組的一種形式,只不過他們主要是計算次數或者計算比例!看其中的效果 案例 不同顏色的不同筆的 資料 col pd.dataframe color object p...
pandas 時間處理
year month day 是 datetime 標準形式 可以用 datetime.dt.day 取到 day 如果是 datetime 相減,得到兩個時間差的天數,型別變為 timedelta 要用 dt.days 獲取天數 如果是一串數字表達的時間 沒有分隔符 可以用to datetime ...
pandas處理資料
pd.read csv path to file.txt header 0,names ab index 0 names columns這個可以不寫,制定索引列是第一列,這樣就沒有序號 np.tofile d python np.txt 類似於二維列表 充分利用map函式 df.a df.a.map...