自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Python處理大數(shù)據(jù)的2個(gè)神奇操作

開(kāi)發(fā) 后端 大數(shù)據(jù)
Python有個(gè)處理大數(shù)據(jù)的庫(kù),結(jié)合x(chóng)lrd庫(kù),在做一些大數(shù)據(jù)的處理統(tǒng)計(jì)工作的時(shí)候很好用,譬如做性能測(cè)試,你的結(jié)果數(shù)據(jù)如何統(tǒng)計(jì),python有個(gè)庫(kù)pandas,這個(gè)就很擅長(zhǎng)做這個(gè)工作,這里就講2個(gè)pandas的騷操作。

Python有個(gè)處理大數(shù)據(jù)的庫(kù),結(jié)合x(chóng)lrd庫(kù),在做一些大數(shù)據(jù)的處理統(tǒng)計(jì)工作的時(shí)候很好用,譬如做性能測(cè)試,你的結(jié)果數(shù)據(jù)如何統(tǒng)計(jì),python有個(gè)庫(kù)pandas,這個(gè)就很擅長(zhǎng)做這個(gè)工作,這里就講2個(gè)pandas的騷操作。 pandas中g(shù)roupby、Grouper和agg函數(shù)的使用。這2個(gè)函數(shù)作用類(lèi)似,都是對(duì)數(shù)據(jù)集中的一類(lèi)屬性進(jìn)行聚合操作,比如統(tǒng)計(jì)一個(gè)用戶在每個(gè)月內(nèi)的全部花銷(xiāo),統(tǒng)計(jì)某個(gè)屬性的最大、最小、累和、平均等數(shù)值。 

Python處理大數(shù)據(jù)的2個(gè)神奇操作

統(tǒng)計(jì)“ext price”這個(gè)屬性在每個(gè)月的累和(sum)值

  1. import pandas as pd 
  2. import collections 
  3. df = pd.read_excel("D:/Download/chrome/sample-salesv3.xlsx"
  4. #print (df.head(10)) 
  5. df["date"] = pd.to_datetime(df["date"]) 
  6. # print (df.head(10)) 
  7. df1 = df.set_index("date").resample("M")['ext price'].sum() 
  8. # print(df1.head())  
Python處理大數(shù)據(jù)的2個(gè)神奇操作

統(tǒng)計(jì)每個(gè)用戶每個(gè)月"ext price"這個(gè)屬性的sum值,利用Grouper

  1. df2 = df.groupby(["name",pd.Grouper(key = "date",freq="M")])["ext price"
  2. print(df2.head(10))  
Python處理大數(shù)據(jù)的2個(gè)神奇操作

Agg

agg函數(shù),它提供基于列的聚合操作。而groupby可以看做是基于行,或者說(shuō)index的聚合操作。

從實(shí)現(xiàn)上看,groupby返回的是一個(gè)DataFrameGroupBy結(jié)構(gòu),這個(gè)結(jié)構(gòu)必須調(diào)用聚合函數(shù)(如sum)之后,才會(huì)得到結(jié)構(gòu)為Series的數(shù)據(jù)結(jié)果。

而agg是DataFrame的直接方法,返回的也是一個(gè)DataFrame。當(dāng)然,很多功能用sum、mean等等也可以實(shí)現(xiàn)。但是agg更加簡(jiǎn)潔, 而且傳給它的函數(shù)可以是字符串,也可以自定義,參數(shù)是column對(duì)應(yīng)的子DataFrame

獲取"ext price","quantity","unit price"3列的各自的累計(jì)值和均值

  1. df3 = df[["ext price","quantity","unit price"]].agg(["sum","mean"]) 
  2. print(df3.head())  
Python處理大數(shù)據(jù)的2個(gè)神奇操作

可以針對(duì)不同的列使用不同的聚合函數(shù)

  1. df4 = df.agg({"ext price":["sum","mean"],"quantity":["sum","mean"],"unit price":["mean"]}) 
  2. print(df4.head())  
Python處理大數(shù)據(jù)的2個(gè)神奇操作

也可以自定義函數(shù),比如,統(tǒng)計(jì)sku中,購(gòu)買(mǎi)次數(shù)最多的產(chǎn)品編號(hào),通過(guò)lambda表達(dá)式來(lái)做。

  1. #統(tǒng)計(jì)sku中,購(gòu)買(mǎi)次數(shù)最多的產(chǎn)品編號(hào) 
  2. get_max = lambda x:x.value_counts(dropna=False).index[0] 
  3. get_max.__name__ = "most frequent" 
  4. df5 = df.agg({"ext price":["sum","mean"], 
  5.  "quantity":["sum","mean"], 
  6.  "unit price":["mean"], 
  7.  "sku":[get_max] 
  8.  }) 
  9. print(df5)  
Python處理大數(shù)據(jù)的2個(gè)神奇操作

如果希望輸出的列按照某個(gè)順序排列,可以使用collections的OrderedDict

  1. agg_dict = { 
  2.  "ext price":["sum","mean"], 
  3.  "quantity":["sum","mean"], 
  4.  "unit price":["mean"], 
  5.  "sku":[get_max] 
  6. #按照列名的長(zhǎng)度排序。OrderedDict的順序是跟插入順序一致的 
  7. df6 = df.agg(collections.OrderedDict(sorted(agg_dict.items(),key=lambda x:len(x[0])))) 
  8. print(df6)  
Python處理大數(shù)據(jù)的2個(gè)神奇操作

源數(shù)據(jù)的鏈接:https://github.com/chris1610/pbpython/tree/master/data

 

責(zé)任編輯:未麗燕 來(lái)源: 今日頭條
相關(guān)推薦

2015-09-10 14:40:32

大數(shù)據(jù)神奇

2020-06-08 07:52:31

Python開(kāi)發(fā)工具

2013-02-26 09:21:05

大數(shù)據(jù)微軟奧斯卡

2017-11-14 05:04:01

大數(shù)據(jù)編程語(yǔ)言數(shù)據(jù)分析

2013-06-06 10:49:51

2017-07-26 17:45:05

2024-12-18 16:16:10

Python圖像處理

2022-08-25 17:47:21

PythonExcel

2024-11-14 12:00:00

Python開(kāi)源大數(shù)據(jù)

2019-02-21 15:34:08

數(shù)據(jù)分析師大數(shù)據(jù)可視化

2016-10-17 13:56:48

大數(shù)據(jù)大數(shù)據(jù)分析

2024-04-01 05:00:00

GUIpythonDearPyGui

2020-07-27 05:40:13

Python數(shù)據(jù)分析開(kāi)發(fā)

2017-07-21 14:22:17

大數(shù)據(jù)大數(shù)據(jù)平臺(tái)數(shù)據(jù)處理

2010-04-13 15:35:12

Oracle處理?yè)p壞數(shù)

2010-04-08 13:55:18

Oracle數(shù)據(jù)處理

2020-06-23 07:50:13

Python開(kāi)發(fā)技術(shù)

2023-11-29 13:56:00

數(shù)據(jù)技巧

2010-07-23 16:21:37

SQL Server重

2023-08-07 09:00:00

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)