pandas實現(xiàn)按照Series分組示例
本文用到的表格內(nèi)容如下:

先來看一下數(shù)據(jù)情形
import pandas as pd life_df = pd.read_excel(r'C:\Users\admin\Desktop\生活用品表.xlsx') print(life_df)
result:
分類 編號 名稱
0 水果 0 蘋果
1 水果 1 橙子
2 生活用品 2 牙刷
3 生活用品 3 冰箱
4 生活用品 4 電視機(jī)
5 食物 0 蘋果
6 食物 1 橙子
7 家電 3 冰箱
8 家電 4 電視機(jī)
9 大件 3 冰箱
10 大件 4 電視機(jī)
11 大件 5 茶幾
12 生活用品 7 暖手寶寶
13 小說 8 紅樓夢
將DataFrame的其中一列取出來就是一個Series,比如life_df["分類"]就是一個Series
1 按照一個Series進(jìn)行分組
life_df = pd.read_excel(r'C:\Users\admin\Desktop\生活用品表.xlsx') print(life_df.groupby(life_df["分類"]))
result:
<pandas.core.groupby.generic.DataFrameGroupBy object at 0x000001506806C6C8>
從上面的結(jié)果可以看出,如果只是傳入Series,分組后的結(jié)果是一個DataFrameGroupBy對象。這個對象包含著分組以后的若干組數(shù)據(jù),但是沒有直接顯示出來,需要對這些分組數(shù)據(jù)進(jìn)行匯總計算以后才會顯示出來
life_df = pd.read_excel(r'C:\Users\admin\Desktop\生活用品表.xlsx') print(life_df.groupby(life_df["分類"]).count())
result:
編號 名稱
分類
大件 3 3
家電 2 2
小說 1 1
水果 2 2
生活用品 4 4
食物 2 2
上面的代碼是根據(jù)物品分類對所有數(shù)據(jù)進(jìn)行了分組,然后對分組以后的數(shù)據(jù)分別進(jìn)行計數(shù)運(yùn)算,最后進(jìn)行合并。
由于對分組后的數(shù)據(jù)進(jìn)行了計數(shù)運(yùn)算,因此每一列都會有一個結(jié)果。但是如果對分組后的結(jié)果做一些數(shù)值運(yùn)算,這個時候只有數(shù)據(jù)類型是數(shù)值(int、float)的列才會參與運(yùn)算
import pandas as pd life_df = pd.read_excel(r'C:\Users\admin\Desktop\生活用品表.xlsx') print(life_df.groupby(life_df["分類"]).sum())
result:
編號
分類
大件 12
家電 7
小說 8
水果 1
生活用品 16
食物 1
我們把這種對分組后的數(shù)據(jù)進(jìn)行匯總運(yùn)算的操作稱為聚合,使用的函數(shù)稱為聚合函數(shù)。比如前面系列文章提高的非空值計數(shù)、sum求和、最大值最小值、均值、中位數(shù)、眾數(shù)、方差、標(biāo)準(zhǔn)差和分位數(shù)這些。都屬于聚合函數(shù)。
2 按照多個Series進(jìn)行分組
多Series分組和單Series分組差不多,只要將多個Series以列表的形式傳遞給groupby()即可。
life_df = pd.read_excel(r'C:\Users\admin\Desktop\生活用品表.xlsx') print(life_df.groupby([life_df["分類"], life_df["名稱"]]).count())
result:
編號
分類 名稱
大件 冰箱 1
電視機(jī) 1
茶幾 1
家電 冰箱 1
電視機(jī) 1
小說 紅樓夢 1
水果 橙子 1
蘋果 1
生活用品 冰箱 1
暖手寶寶 1
牙刷 1
電視機(jī) 1
食物 橙子 1
蘋果 1
life_df = pd.read_excel(r'C:\Users\admin\Desktop\生活用品表.xlsx') print(life_df.groupby([life_df["分類"], life_df["名稱"]]).sum())
result:
編號
分類 名稱
大件 冰箱 3
電視機(jī) 4
茶幾 5
家電 冰箱 3
電視機(jī) 4
小說 紅樓夢 8
水果 橙子 1
蘋果 0
生活用品 冰箱 3
暖手寶寶 7
牙刷 2
電視機(jī) 4
食物 橙子 1
蘋果 0
3 分組和聚合采用不同的列或Series進(jìn)行
這里和按列分組的用法一致
life_df = pd.read_excel(r'C:\Users\admin\Desktop\生活用品表.xlsx') print(life_df.groupby(life_df["分類"])["名稱"].count())
result:
分類
大件 3
家電 2
小說 1
水果 2
生活用品 4
食物 2
Name: 名稱, dtype: int64
這里就是按照物品分類進(jìn)行分組,再按照物品名稱進(jìn)行匯總統(tǒng)計
到此這篇關(guān)于pandas實現(xiàn)按照Series分組示例的文章就介紹到這了,更多相關(guān)pandas Series分組內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python tkinter中的錨點(diǎn)(anchor)問題及處理
這篇文章主要介紹了python tkinter中的錨點(diǎn)(anchor)問題及處理方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-06-06
Python動態(tài)強(qiáng)類型解釋型語言原理解析
這篇文章主要介紹了Python動態(tài)強(qiáng)類型解釋型語言原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-03-03
python實現(xiàn)文字轉(zhuǎn)語音的項目實踐
pyttsx3是一個Python庫,用于文字轉(zhuǎn)語音的功能,它可以將文本轉(zhuǎn)換為語音,并使用不同的音頻引擎進(jìn)行輸出,本文就來詳細(xì)的介紹一下用法,具有一定的參考價值,感興趣的可以了解一下2023-08-08
Python制作當(dāng)年第一款手機(jī)游戲-貪吃蛇游戲(練習(xí))
這篇文章主要介紹了Python制作當(dāng)年第一款手機(jī)游戲-貪吃蛇游戲,文章利用Python?pygame做一個貪吃蛇的小游戲而且講清楚每一段代碼是用來干嘛的,需要的朋友可以參考一下2022-01-01
關(guān)于Python核心框架tornado的異步協(xié)程的2種方法詳解
今天小編就為大家分享一篇關(guān)于Python核心框架tornado的異步協(xié)程的2種方法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08
pip?install?jupyterlab失敗的原因問題及探索
在學(xué)習(xí)Yolo模型時,嘗試安裝JupyterLab但遇到錯誤,錯誤提示缺少Rust和Cargo編譯環(huán)境,因為pywinpty包需要它們來編譯,由于在conda環(huán)境下操作,Rust和Cargo已經(jīng)安裝,問題是pywinpty包丟失,安裝pywinpty包后,再次執(zhí)行pip?install?jupyterlab即可正常下載2025-02-02
python使用requests+excel進(jìn)行接口自動化測試的實現(xiàn)
在當(dāng)今的互聯(lián)網(wǎng)時代中,接口自動化測試越來越成為軟件測試的重要組成部分,本文就來介紹了python使用requests+excel進(jìn)行接口自動化測試的實現(xiàn),感興趣的可以了解一下2023-11-11
python 使用OpenCV進(jìn)行簡單的人像分割與合成
這篇文章主要介紹了python 使用OpenCV進(jìn)行簡單的人像分割與合成的方法,幫助大家更好的利用python處理圖像,感興趣的朋友可以了解下2021-02-02

