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

Python自定義聚合函數(shù)merge與transform區(qū)別詳解

 更新時間:2020年05月26日 10:11:03   作者:懶惰的星期六  
這篇文章主要介紹了Python自定義聚合函數(shù)merge與transform區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

1.自定義聚合函數(shù),結(jié)合agg使用

2. 同時使用多個聚合函數(shù)

3. 指定某一列使用某些聚合函數(shù)

4.merge與transform使用

import pandas as pd
  import numpy as np
  np.random.seed(1)
  dict_data = {
    'k1': ['a', 'b', 'c', 'd', 'a', 'b', 'c', 'd'],
    'k2': ['A', 'B', 'C', 'D', 'A', 'B', 'C', 'D'],
    'data1': np.random.randint(1,10,8),
    'data2': np.random.randint(1,10,8)
  }
  df = pd.DataFrame(dict_data)
  print('df=\n',df)
  df2 = df.groupby('k1').sum()
  # df2 = df.sum()
  print("df.groupby('k1').sum()\n",df2)

  # 使用聚合函數(shù)
  def cus(df):
    return df.max()-df.min()
  # 默認(rèn)列索引為列名。元組第0個元素‘Max',‘mu_cus'為自定義列名稱,第一個元素為聚合函數(shù)名稱
  print("使用聚合函數(shù)1\n",df.groupby('k1').agg(['sum',('Max','max'),('mu_cus',cus)]))
  # 制定某一列使用某個聚合函數(shù), 元組不能用來重命名列名了,元組里面的函數(shù),表示這一列將會執(zhí)行的聚合函數(shù)
  print("使用聚合函數(shù)2\n",df.groupby('k1').agg({'data1':('min', 'max'),'data2':'min'}))

  df3 = df.groupby('k1').sum().add_prefix('sum_')
  print('df3=\n',df3)
  # 如果不使用add_prefix('sum_'),那么在merge時候data1余data2列名相同,會被自動重命名
  print('merge=\n',pd.merge(df,df3,on='k1')) 

  transform_df = df.groupby('k1').transform(np.sum).add_prefix('sum_')
  print(transform_df)
  df[transform_df.columns]=transform_df # transform_df.columns Index(['sum_k2', 'sum_data1', 'sum_data2'], dtype='object')
  # df[transform_df.columns.values]=transform_df #等價,# transform_df.columns.values ['sum_k2', 'sum_data1', 'sum_data2']
   print(df)    exit()

結(jié)果

df=
  k1 k2 data1 data2
0 a A   6   3
1 b B   9   5
2 c C   6   6
3 d D   1   3
4 a A   1   5
5 b B   2   3
6 c C   8   5
7 d D   7   8
df.groupby('k1').sum()
   data1 data2
k1       
a    7   8
b   11   8
c   14   11
d    8   11
使用聚合函數(shù)1
  data1      data2      
   sum Max mu_cus  sum Max mu_cus
k1                 
a   7  6   5   8  5   2
b   11  9   7   8  5   2
c   14  8   2  11  6   1
d   8  7   6  11  8   5
使用聚合函數(shù)2
  data1   data2
   min max  min
k1        
a   1  6   3
b   2  9   3
c   6  8   5
d   1  7   3
df3=
   sum_data1 sum_data2
k1           
a      7     8
b     11     8
c     14     11
d      8     11
merge=
  k1 k2 data1 data2 sum_data1 sum_data2
0 a A   6   3     7     8
1 a A   1   5     7     8
2 b B   9   5     11     8
3 b B   2   3     11     8
4 c C   6   6     14     11
5 c C   8   5     14     11
6 d D   1   3     8     11
7 d D   7   8     8     11
 sum_k2 sum_data1 sum_data2
0   AA     7     8
1   BB    11     8
2   CC    14    11
3   DD     8    11
4   AA     7     8
5   BB    11     8
6   CC    14    11
7   DD     8    11
 k1 k2 data1 data2 sum_k2 sum_data1 sum_data2
0 a A   6   3   AA     7     8
1 b B   9   5   BB    11     8
2 c C   6   6   CC    14    11
3 d D   1   3   DD     8    11
4 a A   1   5   AA     7     8
5 b B   2   3   BB    11     8
6 c C   8   5   CC    14    11
7 d D   7   8   DD     8    11

Process finished with exit code 0

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

相關(guān)文章

  • python使用cartopy在地圖中添加經(jīng)緯線的示例代碼

    python使用cartopy在地圖中添加經(jīng)緯線的示例代碼

    gridlines可以根據(jù)坐標(biāo)系,自動繪制網(wǎng)格線,這對于普通繪圖來說顯然不必單獨拿出來說說,但在地圖中,經(jīng)緯線幾乎是必不可少的,本文將給大家介紹了python使用cartopy在地圖中添加經(jīng)緯線的方法,需要的朋友可以參考下
    2024-01-01
  • Python+OpenCV實戰(zhàn)之拖拽虛擬方塊的實現(xiàn)

    Python+OpenCV實戰(zhàn)之拖拽虛擬方塊的實現(xiàn)

    這篇文章主要介紹了如何利用Python+OpenCV實現(xiàn)拖拽虛擬方塊的效果,即根據(jù)手指坐標(biāo)位置和矩形的坐標(biāo)位置,判斷手指點是否在矩形上,如果在則矩形跟隨手指移動,感興趣的可以了解一下
    2022-08-08
  • python人工智能算法之線性回歸實例

    python人工智能算法之線性回歸實例

    這篇文章主要為大家介紹了python人工智能算法之線性回歸實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • 在python中獲取div的文本內(nèi)容并和想定結(jié)果進(jìn)行對比詳解

    在python中獲取div的文本內(nèi)容并和想定結(jié)果進(jìn)行對比詳解

    今天小編就為大家分享一篇在python中獲取div的文本內(nèi)容并和想定結(jié)果進(jìn)行對比詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • python實現(xiàn)代碼統(tǒng)計器

    python實現(xiàn)代碼統(tǒng)計器

    這篇文章主要為大家詳細(xì)介紹了python實現(xiàn)代碼統(tǒng)計器,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • 使用OpenCV實現(xiàn)圖像的透視變換功能

    使用OpenCV實現(xiàn)圖像的透視變換功能

    在計算機(jī)視覺領(lǐng)域,經(jīng)常需要對圖像進(jìn)行各種幾何變換,如旋轉(zhuǎn)、縮放和平移等,本文主要介紹了如何使用OpenCV實現(xiàn)圖像的透視變換,需要的可以參考下
    2024-11-11
  • Celery+django+redis異步執(zhí)行任務(wù)的實現(xiàn)示例

    Celery+django+redis異步執(zhí)行任務(wù)的實現(xiàn)示例

    本文主要介紹了Celery+django+redis異步執(zhí)行任務(wù)的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-04-04
  • Python如何使用內(nèi)置庫matplotlib繪制折線圖

    Python如何使用內(nèi)置庫matplotlib繪制折線圖

    這篇文章主要介紹了Python如何使用內(nèi)置庫matplotlib繪制折線圖,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-02-02
  • PyHacker編寫指南引用Nmap模塊實現(xiàn)端口掃描器

    PyHacker編寫指南引用Nmap模塊實現(xiàn)端口掃描器

    這篇文章主要為大家介紹了PyHacker編寫指南Nmap模塊實現(xiàn)端口掃描,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • 在Pycharm的Project Files下建立多個項目的操作

    在Pycharm的Project Files下建立多個項目的操作

    這篇文章主要介紹了在Pycharm的Project Files下建立多個項目的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05

最新評論

和平区| 郧西县| 措勤县| 龙陵县| 上犹县| 雅江县| 泽州县| 金乡县| 定边县| 玉树县| 玉树县| 凤山市| 靖安县| 沈丘县| 延长县| 曲沃县| 大兴区| 杭锦后旗| 渝中区| 棋牌| 尤溪县| 湖州市| 蚌埠市| 莒南县| 弥勒县| 西林县| 四会市| 康乐县| 荔波县| 马鞍山市| 辽源市| 乌拉特后旗| 麦盖提县| 巨野县| 晴隆县| 铁岭市| 周至县| 确山县| 罗源县| 合作市| 兴化市|