国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Pandas中的 transform()結合 groupby()用法示例詳解

Pandas中的 transform()結合 groupby()用法示例詳解

2022-01-03 15:15cnhwl Python

這篇文章主要介紹了Pandas中的 transform() 結合 groupby() 用法示例,本文通過一個餐廳數據集給大家分享解決方案,示例代碼簡單易懂,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧

首先,假設我們有如下餐廳數據集:

import pandas as pd

df = pd.DataFrame({
'restaurant_id': [101,102,103,104,105,106,107],
'address': ['A','B','C','D', 'E', 'F', 'G'],
'city': ['London','London','London','Oxford','Oxford', 'Durham', 'Durham'],
'sales': [10,500,48,12,21,22,14]
})

Pandas中的 transform()結合 groupby()用法示例詳解

如果我們想知道:每個餐廳在城市中所占的銷售額百分比是多少?預期得到的輸出是:

Pandas中的 transform()結合 groupby()用法示例詳解

相比于原來的數據集,多了兩列,分別是某個城市所有餐廳的銷售總額,以及每個餐廳在城市中所占的銷售額百分比。解決方案有兩個:

方案一(較麻煩):

1、使用 groupby('city') 基于城市進行分組,對于這些組中的每一個組,選中其銷售額列 ['sales'],然后使用函數 apply(sum) 或者sum() 對城市的銷售額進行求和。

之后,新列被重命名為 city_total_sales 并且索引被重置(注意不能漏了 reset_index() ,因為 groupby('city') 生成的索引是城市,而我們希望城市作為普通列)。

city_sales = df.groupby('city')['sales']
           .sum().rename('city_total_sales').reset_index()

得到的 city_sales 如下:

Pandas中的 transform()結合 groupby()用法示例詳解

2、用 merge() 函數把 city_sales 合并回去,得到的 df_new 如下:

df_new = pd.merge(df, city_sales, how='left')

Pandas中的 transform()結合 groupby()用法示例詳解
3、最后,求百分比并保留兩位小數,結果如下:

df_new['pct'] = df_new['sales'] / df_new['city_total_sales']
df_new['pct'] = df_new['pct'].apply(lambda x: format(x, '.2%'))

Pandas中的 transform()結合 groupby()用法示例詳解

方案二(便捷):

1、
transform() 函數在執行轉換后保留與原始數據集相同數量的項目。因此,使用 groupby() 然后使用 transform(sum) 會返回相同的輸出,結果如下圖:

df['city_total_sales'] = df.groupby('city')['sales']
                         .transform('sum')

代碼翻譯過來就是:數據集基于城市進行分組,然后選定銷售額列,對每組的銷售額進行求和,返回一個和原列長度一樣的新列。

Pandas中的 transform()結合 groupby()用法示例詳解

2

與方案一相同。

df['pct'] = df['sales'] / df['city_total_sales']
df['pct'] = df['pct'].apply(lambda x: format(x, '.2%'))

總結:可以看出,在對 DataFrame 進行分組 groupby() 之后,如果是使用 apply() 或者直接使用某個統計函數,得到的新列的長度與分組得到的組數是一樣的;而如果使用 transform() ,得到的新列與 DataFrame 中列的長度是一樣的

到此這篇關于Pandas中的 transform()結合 groupby()用法示例詳解的文章就介紹到這了,更多相關Pandas groupby() 用法內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/cnhwl/article/details/120169278

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 99久久精品国产一区二区三区 | 国外精品久久久蜜桃免费全文阅读 | 亚洲国产精品视频 | 欧美精品一区二区三区四区 | 成人av免费 | 国产精品国产精品国产专区不片 | 亚洲人人射 | jizz欧美大片| 国产一区亚洲二区三区 | 中文精品在线 | 91视频免费看 | 精品国产污网站污在线观看15 | 久久精品国产久精国产 | 成人激情在线观看 | 国产中文一区 | 国产片在线看 | 艹逼短视频 | 国产欧美精品区一区二区三区 | 激情欧美一区二区三区中文字幕 | 日本福利一区二区 | 韩国精品一区二区 | 久久久久久亚洲一区二区三区蜜臀 | 午夜视频在线观看网站 | 国产精品久久久久久久久久久久久 | 91在线公开视频 | 久久99精品久久久久久久青青日本 | 午夜视频网 | 久久久精品亚洲 | 国产欧美精品一区二区三区 | 精品视频国产 | 九九热精品视频在线观看 | 日韩在线精品 | а天堂中文最新一区二区三区 | 日韩中文字幕视频在线 | 色老板在线视频 | 亚洲国产精品人人爽夜夜爽 | 日韩一区二区不卡 | 国产精品一区二区不卡 | 久久久久久成人 | 一级黄毛片 | 日韩成人在线电影 |