1. 程式人生 > 實用技巧 >2-python資料分析-基於pandas的資料清洗、DataFrame的級聯與合併操作

2-python資料分析-基於pandas的資料清洗、DataFrame的級聯與合併操作

基於pandas的資料清洗

處理丟失資料

  • 有兩種丟失資料:
    • None
    • np.nan(NaN)
  • 兩種丟失資料的區別
    • None 是物件型別
    • np.nan 是浮點型別
type(None)  # NoneType 物件型別
type(np.nan)  # float 浮點型別 

為什麼在資料分析中需要用到的是浮點型別的空而不是物件型別?

  • 資料分析中會常常使用某些形式的運算來處理原始資料,如果原數資料中的空值為NAN的形式,則不會干擾或者中斷運算。
  • NAN可以參與運算的
  • None是不可以參與運算

在pandas中如果遇到了None形式的空值則pandas會將其強轉成NAN的形式。pandas中,None=nan

pandas處理空值操作

  1. 對空值進行刪除
  2. 對空值進行填充

主要用的技術點

  • isnull
  • notnull
  • any
  • all
  • dropna
  • fillna

首先建立一組帶有空值的資料

df = DataFrame(data=np.random.randint(0,100,size=(7,5)))
df.iloc[2,3] = None
df.iloc[4,2] = np.nan
df.iloc[5,4]= None
df

方式1:對空值進行過濾(刪除空所在的行資料)

技術

  • isnull,any
  • notnull,all
df.isnull()  # 這樣查詢不太具體


# 哪些行中有空值
# any(axis=1)檢測哪些行中存有空值 df.isnull().any(axis=1) # any會作用isnull返回結果的每一行 # True對應的行就是存有缺失資料的行 0 False 1 False 2 True 3 False 4 True 5 True 6 False dtype: bool
df.notnull()
df.notnull().all(axis=1)

0     True
1     True
2    False
3     True
4    False
5    False
6     True
dtype: bool