日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務,提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

Python有個處理大數(shù)據(jù)的庫,結合xlrd庫,在做一些大數(shù)據(jù)的處理統(tǒng)計工作的時候很好用,譬如做性能測試,你的結果數(shù)據(jù)如何統(tǒng)計,python有個庫pandas,這個就很擅長做這個工作,這里就講2個pandas的騷操作。 pandas中groupby、Grouper和agg函數(shù)的使用。這2個函數(shù)作用類似,都是對數(shù)據(jù)集中的一類屬性進行聚合操作,比如統(tǒng)計一個用戶在每個月內的全部花銷,統(tǒng)計某個屬性的最大、最小、累和、平均等數(shù)值。

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

 

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

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

 

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

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

 

Agg

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

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

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

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

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

 

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

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

 

也可以自定義函數(shù),比如,統(tǒng)計sku中,購買次數(shù)最多的產品編號,通過lambda表達式來做。

#統(tǒng)計sku中,購買次數(shù)最多的產品編號
get_max = lambda x:x.value_counts(dropna=False).index[0]
get_max.__name__ = "most frequent"
df5 = df.agg({"ext price":["sum","mean"],
 "quantity":["sum","mean"],
 "unit price":["mean"],
 "sku":[get_max]
 })
print(df5)
Python處理大數(shù)據(jù)的2個神奇操作

 

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

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

 

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

分享到:
標簽:數(shù)據(jù) Python
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數(shù)有氧達人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定