最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Pandas聚合運算和分組運算的實現(xiàn)示例

 更新時間:2019年10月17日 11:22:05   作者:CHZZBECK  
這篇文章主要介紹了Pandas聚合運算和分組運算的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

1.聚合運算

(1)使用內(nèi)置的聚合運算函數(shù)進(jìn)行計算

1>內(nèi)置的聚合運算函數(shù)

sum(),mean(),max(),min(),size(),describe()...等等

2>應(yīng)用聚合運算函數(shù)進(jìn)行計算

import numpy as np
import pandas as pd
#創(chuàng)建df對象
dict_data = {
  'key1':['a','b','c','d','a','b','c','d'],
  'key2':['one','two','three','one','two','three','one','two'],
  'data1':np.random.randint(1,10,8),
  'data2':np.random.randint(1,10,8)
}
 
df = pd.DataFrame(dict_data)
print(df)
'''
  data1 data2 key1  key2
0   3   4  a  one
1   7   9  b  two
2   5   7  c three
3   3   4  d  one
4   8   7  a  two
5   4   7  b three
6   8   9  c  one
7   4   4  d  two
'''
#根據(jù)key1分組,進(jìn)行sum()運算
df = df.groupby('key1').sum()
print(df)
'''
key1       
a    12   10
b     8   5
c     8   11
d    16   13
'''
#內(nèi)置的聚合函數(shù)
print(df.groupby('key1').sum())
print('*'*50)
print(df.groupby('key1').max())
print('*'*50)
print(df.groupby('key1').min())
print('*'*50)
print(df.groupby('key1').mean())
print('*'*50)
print(df.groupby('key1').size())
print('*'*50)
#分組中非Nan數(shù)據(jù)的數(shù)量
print(df.groupby('key1').count())
print('*'*50)
print(df.groupby('key1').describe())

(2)自定義聚合函數(shù)進(jìn)行計算

在使用自定義聚合函數(shù)的時候,需要用到一個agg()函數(shù)

#自定義聚合函數(shù)
#最大值-最小值
def peak_range(df):
  #返回數(shù)據(jù)范圍差值
  return df.max()**2 - df.min()**2
 
#agg() 可以將聚合計算的結(jié)果祖闖成一個dataframe對象返回
 
print(df.groupby('key1').agg(peak_range))
 
#lambda
print(df.groupby('key1').agg(lambda df:df.max()-df.min()))

(3)應(yīng)用多個聚合函數(shù),默認(rèn)列索引為函數(shù)名

#應(yīng)用多個聚合函數(shù),默認(rèn)列索引為函數(shù)名
#通過元素重新命名列索引('列索引',函數(shù))
print(df.groupby('key1').agg(['sum','std','mean',('range',peak_range)]))
'''
   data1           data2           
    sum    std mean range  sum    std mean range
key1                           
a    10 2.828427 5.0  40  12 2.828427 6.0  48
b    10 5.656854 5.0  80   8 1.414214 4.0  16
c    6 1.414214 3.0  12   9 0.707107 4.5   9
d    15 0.707107 7.5  15   8 2.828427 4.0  32
'''

(4)指定每一列使用某個聚合運算函數(shù)

#指定每一列使用某個聚合運算函數(shù)
print(df.groupby('key1').agg({'data1':'mean','data2':'sum'}))
'''
   data1 data2
key1       
a    5.0   12
b    5.0   8
c    3.0   9
d    7.5   8
'''

2.分組運算

(1)進(jìn)行分組運算,并在運算后的結(jié)果列索引前加前綴

加前綴用到add_prefix('前綴')函數(shù)

#創(chuàng)建df對象
dict_data = {
  'key1':['a','b','c','d','a','b','c','d'],
  'key2':['one','two','three','one','two','three','one','two'],
  'data1':np.random.randint(1,10,8),
  'data2':np.random.randint(1,10,8)
}
 
df = pd.DataFrame(dict_data)
print(df)
'''
  data1 data2 key1  key2
0   1   5  a  one
1   9   3  b  two
2   3   6  c three
3   6   9  d  one
4   8   4  a  two
5   5   5  b three
6   9   6  c  one
7   4   1  d  two
'''
#按照key1分組,進(jìn)行sum()運算
#在運算結(jié)果的列索引前添加前綴
k1_sum = df.groupby('key1').sum().add_prefix('sum_')
print(k1_sum)
'''
   sum_data1 sum_data2
key1           
a       9     9
b      14     8
c      12     12
d      10     10
'''

(2)進(jìn)行分組運算,并把原始數(shù)據(jù)和結(jié)果數(shù)據(jù)合并

#創(chuàng)建df對象
dict_data = {
  'key1':['a','b','c','d','a','b','c','d'],
  'key2':['one','two','three','one','two','three','one','two'],
  'data1':np.random.randint(1,10,8),
  'data2':np.random.randint(1,10,8)
}
 
df = pd.DataFrame(dict_data)
print(df)
'''
  data1 data2 key1  key2
0   1   5  a  one
1   9   3  b  two
2   3   6  c three
3   6   9  d  one
4   8   4  a  two
5   5   5  b three
6   9   6  c  one
7   4   1  d  two
'''
#按照key1分組,進(jìn)行sum()運算
#在運算結(jié)果的列索引前添加前綴
k1_sum = df.groupby('key1').sum().add_prefix('sum_')
print(k1_sum)
'''
   sum_data1 sum_data2
key1           
a       9     9
b      14     8
c      12     12
d      10     10
'''
#將運算結(jié)果和原始數(shù)據(jù)拼接到一起
#參數(shù)1:原始數(shù)據(jù)
#參數(shù)2:運算結(jié)果數(shù)據(jù)
pd.merge(df,k1_sum,left_on='key1',right_index=True)

(3)使用transform()函數(shù),將計算結(jié)果按照原始數(shù)據(jù)排序成一個DataFrame對象

#創(chuàng)建df對象
dict_data = {
  'key1':['a','b','c','d','a','b','c','d'],
  'key2':['one','two','three','one','two','three','one','two'],
  'data1':np.random.randint(1,10,8),
  'data2':np.random.randint(1,10,8)
}
 
df = pd.DataFrame(dict_data)
print(df)
'''
  data1 data2 key1  key2
0   1   5  a  one
1   9   3  b  two
2   3   6  c three
3   6   9  d  one
4   8   4  a  two
5   5   5  b three
6   9   6  c  one
7   4   1  d  two
'''
#按照key1分組,進(jìn)行sum()運算
#在運算結(jié)果的列索引前添加前綴
k1_sum = df.groupby('key1').sum().add_prefix('sum_')
print(k1_sum)
'''
   sum_data1 sum_data2
key1           
a       9     9
b      14     8
c      12     12
d      10     10
'''
#transform() 計算 會將計算的結(jié)果按照原始數(shù)據(jù)的排序組裝成一個dataframe對象
k1_sum_tf = df.groupby('key1').transform(np.sum).add_prefix('sum_')
# print(k1_sum_tf.columns)
 
#把運算結(jié)果數(shù)據(jù)拼接到原始數(shù)據(jù)后
df[k1_sum_tf.columns] = k1_sum_tf
print(df)
'''
  data1 data2 key1  key2 sum_data1 sum_data2 sum_key2
0   5   4  a  one     9    12  onetwo
1   3   3  b  two     5    12 twothree
2   9   2  c three    14     9 threeone
3   6   5  d  one    11     9  onetwo
4   4   8  a  two     9    12  onetwo
5   2   9  b three     5    12 twothree
6   5   7  c  one    14     9 threeone
7   5   4  d  two    11     9  onetwo
'''

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解Python中最常用的10個內(nèi)置函數(shù)

    詳解Python中最常用的10個內(nèi)置函數(shù)

    Python作為一種多用途編程語言,擁有豐富的內(nèi)置函數(shù)庫,這些函數(shù)可以極大地提高開發(fā)效率,本文將介紹Python中最常用的10個內(nèi)置函數(shù),我們將深入了解每個函數(shù),并提供示例代碼以幫助您更好地理解它們,需要的朋友可以參考下
    2023-11-11
  • python實現(xiàn)RabbitMQ的消息隊列的示例代碼

    python實現(xiàn)RabbitMQ的消息隊列的示例代碼

    這篇文章主要介紹了python實現(xiàn)RabbitMQ的消息隊列的示例代碼,總結(jié)了RabbitMQ中三種exchange模式的實現(xiàn),分別是fanout, direct和topic。感興趣的小伙伴們可以參考一下
    2018-11-11
  • 深入理解Python爬蟲代理池服務(wù)

    深入理解Python爬蟲代理池服務(wù)

    這篇文章主要介紹了Python爬蟲代理池服務(wù)的相關(guān)知識,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2018-02-02
  • Spy++的使用方法及下載教程

    Spy++的使用方法及下載教程

    這篇文章主要介紹了Spy++的使用方法及下載教程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • Python之a(chǎn)scii轉(zhuǎn)中文的實現(xiàn)

    Python之a(chǎn)scii轉(zhuǎn)中文的實現(xiàn)

    這篇文章主要介紹了Python之a(chǎn)scii轉(zhuǎn)中文的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • Python和Anaconda和Pycharm安裝教程圖文詳解

    Python和Anaconda和Pycharm安裝教程圖文詳解

    PyCharm是一種PythonIDE,帶有一整套可以幫助用戶在使用Python語言開發(fā)時提高其效率的工具,這篇文章主要介紹了Python和Anaconda和Pycharm安裝教程,需要的朋友可以參考下
    2020-02-02
  • Python print不能立即打印的解決方式

    Python print不能立即打印的解決方式

    今天小編就為大家分享一篇Python print不能立即打印的解決方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • Python爬蟲UA偽裝爬取的實例講解

    Python爬蟲UA偽裝爬取的實例講解

    在本篇文章里小編給大家整理的是一篇關(guān)于Python爬蟲UA偽裝爬取的實例講解內(nèi)容,有需要的朋友們可以學(xué)習(xí)參考下。
    2021-02-02
  • python 遠(yuǎn)程統(tǒng)計文件代碼分享

    python 遠(yuǎn)程統(tǒng)計文件代碼分享

    享一個Python獲取遠(yuǎn)程文件大小的函數(shù)代碼,簡單實用,是學(xué)習(xí)Python編程的基礎(chǔ)實例。
    2015-05-05
  • 一文詳解Python定時任務(wù)觸發(fā)

    一文詳解Python定時任務(wù)觸發(fā)

    這篇文章主要為大家詳細(xì)介紹了Python定時任務(wù)觸發(fā)的相關(guān)知識,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Python有一定的幫助,需要的可以參考一下
    2023-04-04

最新評論

光泽县| 古蔺县| 邯郸县| 通州区| 昭通市| 图木舒克市| 太原市| 海伦市| 大连市| 阿合奇县| 安义县| 集安市| 洪泽县| 谷城县| 南溪县| 万安县| 沙河市| 沭阳县| 云安县| 仁寿县| 樟树市| 玛纳斯县| 邢台县| 汶川县| 长岛县| 志丹县| 武威市| 周至县| 巧家县| 响水县| 加查县| 肥城市| 昌吉市| 舒兰市| 济南市| 南部县| 锦州市| 泸定县| 陵川县| 阳江市| 常山县|