【數據分析day04】pandas數據處理三:數據聚合&“高級”數據聚合

pandas數據處理三:數據聚合&高級數據聚合

數據聚合

  • 數據聚合是數據處理的最後一步,通常是要使每一個數組生成一個單一的數值。
  • 數據分類處理:
    • 分組:先把數據分爲幾組
    • 聚合 , 求分組組內的數據聚合
    • 合併:把不同組得到的結果合併起來
  • 數據分類處理的核心: groupby()函數

例子:統計出color的總price, 再合併到原表種

	df = DataFrame({'color':['red','white','red','cyan','cyan','green','white','cyan'],
            'price':np.random.randint(0,8,size = 8),
            'weight':np.random.randint(50,55,size = 8)})
	df

在這裏插入圖片描述
分組

# 分組
df.groupby(by='color')

在這裏插入圖片描述

使用.groups屬性查看各行的分組情況:

# 查看分組的情況.groups
df.groupby(by='color').groups

在這裏插入圖片描述
聚合:

# 以color作爲分類索引,計算出每個顏色的price總和,weight總和
df.groupby(by='color').sum()

在這裏插入圖片描述

# 推薦寫法
# 分組&聚合
price_sum = df.groupby(by='color')[['price']].sum()
price_sum

在這裏插入圖片描述
查看元數據

df

在這裏插入圖片描述
合併

# 合併
pd.merge(df, price_sum, left_on='color', right_index=True, suffixes=['', '_sum'])

在這裏插入圖片描述

高級數據聚合

  • 可以使用pd.merge()函數將聚合操作的計算結果添加到df的每一行

  • 使用groupby分組後調用加和等函數進行運算,讓後最後可以調用add_prefix(),來修改列名

  • 高級”在於可以在合併前先修改索引前後綴,而且可以給列統一加後綴

      weight_sum = ddd.groupby(by='item')[['weight']].sum()
      weight_sum
    

    在這裏插入圖片描述

      weight_sum.add_suffix('_sum')
    

    在這裏插入圖片描述

      # 用來給列統一加後綴.
      ddd.add_suffix('_test')
    

    在這裏插入圖片描述

      # 前綴prefix
      ddd.add_prefix('test_')
    

    在這裏插入圖片描述

  • 可以使用transformapply實現相同功能
    在transform或者apply中傳入函數即可

在這裏插入圖片描述
在這裏插入圖片描述

萬能函數 apply()

why? 因爲它能把字符串也聚合起來

# 萬能 函數
ddd.groupby(by='item').apply(sum)

在這裏插入圖片描述

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