有兩種丟失數據
——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)) #保留一位為%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")