有兩種丟失數據html
——Nonepython
——np.nan(NaN)json
None是python自帶的,其類型爲python object。所以,None不能參與到任何計算中函數
Object類型的運算比int類型的運算慢的多spa
計算不一樣數據類型求和時間excel
%timeit np.arange(1e5,dtype=xxx).sum()orm
%timeit是指python表達式或語句的執行時間htm
Pandas中的none與np.nan都視做np.nan索引
數據清洗內存
df.loc[index,column] ------>元素索引,確定能夠修改
df[column][index] --------->列是屬性,確定能夠修改
df.loc[index][column] ----->從df中取出了樣本,對取出來的數據進行了修改,原數據沒變
現獲取列,在獲取行
如:df["python"][3] = np.nan
先獲取行,再獲取列
df.loc[3]["python"] = np.nan
先獲取行,是將樣本數據取出來,在內存中的內存地址就不同了,修改數據失敗
df.loc[3,5] =np.nan
Pandas中None與np.NaN的操做
Isnull():判斷是否有空數據
Notnoll():判斷是否沒有空數據
Dropna():過濾丟失數據
Fillna():填充丟失數據
(1)判斷函數Isnull()和Notnull()
查找空數據
如:cond=df.isnull().any(axis=1)
df[cond]
過濾掉空數據
如:cond = df.notnull().all(axis=1)
df[cond]
(2)過濾函數Dropna()
如:df.dropna(),刪除df表中的含有空數據的樣本
能夠選則過濾的是行仍是列(默認過濾行)
也能夠選擇過濾的方式how=「all」
(3)數據填充fillna()
Fillna()屬性
['value=None', 'method=None', 'axis=None', 'inplace=False', 'limit=None', 'downcast=None', '**kwargs']
對浮點數小數位數進行限定
pd.set_option("display.float_format",lambda x:"%0.1f"%(x)) #保留一位爲%0.1,保留兩位爲%0.2,以此類推
注意:
1.對於空數據,通常進行填充時填充該列的平均值、中位數、衆數進行填充。
2.對於和是用什麼數據進行填充還得根據實際狀況來決定
3.正態分佈使用平均值和中位數差異不大。
**計算平均數的用mean()
如:value=df.mean()
df.fillna(value)
**計算中位數用:median()
如:value1 = df.median()
df.fillna(value1)
填充數據可選擇行方向和列方向的向前填充或是向後填充
df.fillna(method="bfill",axis=1)#向後填充
df.fillna(method="ffill",axis=1) #向前填充
df.fillna(value=values,limit=1) #限制填充的行數,默認從第一行開始
**統計衆數:np.unique(s)
使用衆數進行填充同上
Pandas中文件的讀取和寫入
將數據存儲到csv格式的文本
s1.to_csv("./data1.csv",sep=',',index = False)
#存成csv格式,csv就是txt格式,用逗號進行分割,index表示是否將索引也存儲進去
#注意重點是sep分隔符和index索引的設置
將csv格式的文本數據導入到jupyter中
如:pd.read_csv("./data1.csv")
將數據存儲成html格式
s3.to_html("./data.html")
pd.read_excel(「./data.htm」)
將文件存儲成json格式
s3.to_json("./data.json")
pd.read_json("./data.json")
將文件存儲成excel格式的文件
s3.to_excel("./data.xls")
pd.read_excel("./data.xls")
有兩種丟失數據
——None
——np.nan(NaN)
None是python自帶的,其類型爲python object。所以,None不能參與到任何計算中
Object類型的運算比int類型的運算慢的多
計算不一樣數據類型求和時間
%timeit np.arange(1e5,dtype=xxx).sum()
%timeit是指python表達式或語句的執行時間
Pandas中的none與np.nan都視做np.nan
數據清洗
df.loc[index,column] ------>元素索引,確定能夠修改
df[column][index] --------->列是屬性,確定能夠修改
df.loc[index][column] ----->從df中取出了樣本,對取出來的數據進行了修改,原數據沒變
現獲取列,在獲取行
如:df["python"][3] = np.nan
先獲取行,再獲取列
df.loc[3]["python"] = np.nan
先獲取行,是將樣本數據取出來,在內存中的內存地址就不同了,修改數據失敗
df.loc[3,5] =np.nan
Pandas中None與np.NaN的操做
Isnull():判斷是否有空數據
Notnoll():判斷是否沒有空數據
Dropna():過濾丟失數據
Fillna():填充丟失數據
(1)判斷函數Isnull()和Notnull()
查找空數據
如:cond=df.isnull().any(axis=1)
df[cond]
過濾掉空數據
如:cond = df.notnull().all(axis=1)
df[cond]
(2)過濾函數Dropna()
如:df.dropna(),刪除df表中的含有空數據的樣本
能夠選則過濾的是行仍是列(默認過濾行)
也能夠選擇過濾的方式how=「all」
(3)數據填充fillna()
Fillna()屬性
['value=None', 'method=None', 'axis=None', 'inplace=False', 'limit=None', 'downcast=None', '**kwargs']
對浮點數小數位數進行限定
pd.set_option("display.float_format",lambda x:"%0.1f"%(x))
對於空數據,通常進行填充時填充該列的平均值、中位數、衆數進行填充。
對於和是用什麼數據進行填充還得根據實際狀況來決定
正態分佈使用平均值和中位數差異不大。
**計算平均數的用mean()
如:value=df.mean()
df.fillna(value)
**計算中位數用:median()
如:value1 = df.median()
df.fillna(value1)
填充數據可選擇行方向和列方向的向前填充或是向後填充
df.fillna(method="bfill",axis=1)#向後填充
df.fillna(method="ffill",axis=1) #向前填充
df.fillna(value=values,limit=1) #限制填充的行數,默認從第一行開始
**統計衆數:np.unique(s)
使用衆數進行填充同上
Pandas中文件的讀取和寫入
將數據存儲到csv格式的文本
s1.to_csv("./data1.csv",sep=',',index = False)
#存成csv格式,csv就是txt格式,用逗號進行分割,index表示是否將索引也存儲進去
#注意重點是sep分隔符和index索引的設置
將csv格式的文本數據導入到jupyter中
如:pd.read_csv("./data1.csv")
將數據存儲成html格式
s3.to_html("./data.html")
pd.read_excel(「./data.htm」)
將文件存儲成json格式
s3.to_json("./data.json")
pd.read_json("./data.json")
將文件存儲成excel格式的文件
s3.to_excel("./data.xls")
pd.read_excel("./data.xls")