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

Pandas計(jì)算元素的數(shù)量和頻率的方法(出現(xiàn)的次數(shù))

 更新時(shí)間:2023年02月22日 15:07:22   作者:餃子大人  
本文主要介紹了Pandas計(jì)算元素的數(shù)量和頻率的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

在pandas.Series的pandas.DataFrame列中,將描述獲取唯一元素?cái)?shù)(不包括重復(fù)項(xiàng)的案例數(shù))和每個(gè)元素的出現(xiàn)頻率(出現(xiàn)數(shù))的方法。

使用pandas.Series方法的unique(),value_counts()和nunique()。還提供了nunique()作為pandas.DataFrame的方法。

在這里:

  • pandas.Series.unique():返回NumPy數(shù)組ndarray中唯一元素值的列表
  • pandas.Series.value_counts():返回唯一元素的值及其在出現(xiàn)的次數(shù)。
  • pandas.Series.nunique(), pandas.DataFrame.nunique():返回int,pandas.Series中唯一元素的數(shù)量。

在解釋了基本用法之后,對(duì)一下內(nèi)容進(jìn)行介紹。

  • 唯一元素的數(shù)量(不包括重復(fù)項(xiàng)的)
  • 唯一元素值列表
  • 唯一元素的頻率(出現(xiàn)次數(shù))
  • 獨(dú)特元素及其出現(xiàn)的字典
  • 模式及其頻率
  • 歸一化頻率

以下面的數(shù)據(jù)為例。

import pandas as pd
import numpy as np

df = pd.read_csv('./data/15/sample_pandas_normal.csv')
df.iloc[1] = np.nan
print(df)
# ? ? ? name ? age state ?point
# 0 ? ?Alice ?24.0 ? ?NY ? 64.0
# 1 ? ? ?NaN ? NaN ? NaN ? ?NaN
# 2 ?Charlie ?18.0 ? ?CA ? 70.0
# 3 ? ? Dave ?68.0 ? ?TX ? 70.0
# 4 ? ?Ellen ?24.0 ? ?CA ? 88.0
# 5 ? ?Frank ?30.0 ? ?NY ? 57.0

pandas.Series.unique():返回NumPy數(shù)組ndarray中唯一元素值的列表

unique()返回唯一元素值的列表。一維NumPy數(shù)組ndarray類型而不是列表類型(Python內(nèi)置類型)。還包括缺失值NaN。

u = df['state'].unique()
print(u)
print(type(u))
# ['NY' nan 'CA' 'TX']
# <class 'numpy.ndarray'>

pandas.Series.value_counts():返回唯一元素的值及其在出現(xiàn)的次數(shù)。

value_counts()返回pandas.Series,其中唯一元素的值是index,出現(xiàn)的次數(shù)是data。當(dāng)需要元素的頻率(出現(xiàn)次數(shù))時(shí)使用此選項(xiàng)。

vc = df['state'].value_counts()
print(vc)
print(type(vc))
# NY    2
# CA    2
# TX    1
# Name: state, dtype: int64
# <class 'pandas.core.series.Series'>

默認(rèn)情況下,它按出現(xiàn)次數(shù)的降序排序,但是如果參數(shù)ascending = True,則以升序排序,如果參數(shù)sort = False,則不進(jìn)行排序。

print(df['state'].value_counts(ascending=True))
# TX ? ?1
# CA ? ?2
# NY ? ?2
# Name: state, dtype: int64

print(df['state'].value_counts(sort=False))
# CA ? ?2
# NY ? ?2
# TX ? ?1
# Name: state, dtype: int64

默認(rèn)情況下,NaN被排除,但如果參數(shù)dropna = False,則也計(jì)入NaN。

print(df['state'].value_counts(dropna=False))
# NY     2
# CA     2
# TX     1
# NaN    1
# Name: state, dtype: int64

如果指定了參數(shù)normalize = True,則將值歸一化,以使總數(shù)變?yōu)?。

請(qǐng)注意,如果包含缺失值NaN,則該值將根據(jù)參數(shù)dropna的設(shè)置而有所不同。

print(df['state'].value_counts(dropna=False, normalize=True))
# NY     0.333333
# CA     0.333333
# TX     0.166667
# NaN    0.166667
# Name: state, dtype: float64

pandas.Series.nunique(), pandas.DataFrame.nunique():返回int,pandas.Series中唯一元素的數(shù)量。

pandas.Series.nunique()以整數(shù)int形式返回唯一元素的數(shù)量。

默認(rèn)情況下,不包含NaN,并且如果指定了參數(shù)dropna = False,則結(jié)果還將包含NaN。

nu = df['state'].nunique()
print(nu)
print(type(nu))
# 3
# <class 'int'>

print(df['state'].nunique(dropna=False))
# 4

pandas.DataFrame.nunique()計(jì)算每列的唯一元素?cái)?shù)。返回pandas.Series類型。

默認(rèn)情況下,不包含NaN,并且如果指定了參數(shù)dropna = False,則結(jié)果還將包含NaN。

默認(rèn)情況下,該值為每列,但是如果參數(shù)axis = 1或axis =‘columns’,則返回每行的值。

nu_col = df.nunique()
print(nu_col)
print(type(nu_col))
# name ? ? 5
# age ? ? ?4
# state ? ?3
# point ? ?4
# dtype: int64
# <class 'pandas.core.series.Series'>

print(df.nunique(dropna=False))
# name ? ? 6
# age ? ? ?5
# state ? ?4
# point ? ?5
# dtype: int64

print(df.nunique(dropna=False, axis='columns'))
# 0 ? ?4
# 1 ? ?1
# 2 ? ?4
# 3 ? ?4
# 4 ? ?4
# 5 ? ?4
# dtype: int64

唯一元素的數(shù)量(不包括重復(fù)項(xiàng)的)

如上所述,pandas.Series.nunique()和pandas.DataFrame.nunique()可以計(jì)算唯一元素的數(shù)量(唯一元素的數(shù)量)。

print(df['state'].nunique())
# 3

print(df.nunique())
# name ? ? 5
# age ? ? ?4
# state ? ?3
# point ? ?4
# dtype: int64

唯一元素值列表

使用unique(),您可以獲取NumPy數(shù)組ndarray類型的唯一元素值的列表。如果要使用列表類型(Python內(nèi)置類型),則可以使用tolist()方法將其轉(zhuǎn)換。

print(df['state'].unique().tolist())
print(type(df['state'].unique().tolist()))
# ['NY', nan, 'CA', 'TX']
# <class 'list'>

可以將tolist()方法應(yīng)用于通過(guò)value_counts()獲得的pandas.Series的索引。也可以作為NumPy數(shù)組ndarray類型的值來(lái)獲取。

print(df['state'].value_counts().index.tolist())
print(type(df['state'].value_counts().index.tolist()))
# ['NY', 'CA', 'TX']
# <class 'list'>

print(df['state'].value_counts(dropna=False).index.values)
print(type(df['state'].value_counts().index.values))
# ['NY' 'CA' 'TX' nan]
# <class 'numpy.ndarray'>

如上所述,在unique()的情況下,始終包含NaN,但是value_counts()可以指定參數(shù)dropna是否包含NaN。

唯一元素的頻率(出現(xiàn)次數(shù))

要獲取每個(gè)唯一元素的頻率(出現(xiàn)次數(shù)),請(qǐng)?jiān)L問(wèn)通過(guò)value_counts()獲得的pandas.Series的值。

print(df['state'].value_counts()['NY'])
# 2

print(df['state'].value_counts().NY)
# 2

使用iteritems()方法檢索for循環(huán)中的元素值和頻率(出現(xiàn)次數(shù))。

for index, value in df['state'].value_counts().iteritems():
    print(index, ': ', value)
# NY :  2
# CA :  2
# TX :  1

獨(dú)特元素及其出現(xiàn)的字典

也可以將to_dict()方法應(yīng)用于value_counts()獲得的pandas.Series使其成為字典。

d = df['state'].value_counts().to_dict()
print(d)
print(type(d))
# {'NY': 2, 'CA': 2, 'TX': 1}
# <class 'dict'>

print(d['NY'])
# 2

使用items()方法在for循環(huán)中檢索元素值和頻率(出現(xiàn)次數(shù))。

for key, value in d.items():
    print(key, ': ', value)
# NY :  2
# CA :  2
# TX :  1

模式及其頻率

默認(rèn)情況下,value_counts()返回pandas.Series,它以出現(xiàn)次數(shù)的降序排列,因此頂部是最頻繁出現(xiàn)的值及其頻率。

print(df['state'].value_counts())
# NY ? ?2
# CA ? ?2
# TX ? ?1
# Name: state, dtype: int64

print(df['state'].value_counts().index[0])
# NY

print(df['state'].value_counts().iat[0])
# 2

原始pandas.Series的元素成為所得pandas.Series的索引。當(dāng)數(shù)值為索引時(shí),無(wú)法使用[Number]指定該值(這會(huì)導(dǎo)致錯(cuò)誤),因此嚴(yán)格使用iat [Number]進(jìn)行指定。 (由于示例是字符串,因此[Number]無(wú)關(guān)緊要)

使用apply()方法將其應(yīng)用于pandas.DataFrame的每一列。

Pandas中map(),applymap(),apply()函數(shù)的使用方法

print(df.apply(lambda x: x.value_counts().index[0]))
# name ? ? Frank
# age ? ? ? ? 24
# state ? ? ? NY
# point ? ? ? 70
# dtype: object

print(df.apply(lambda x: x.value_counts().iat[0]))
# name ? ? 1
# age ? ? ?2
# state ? ?2
# point ? ?2
# dtype: int64

如果存在多種模式,則上述方法只能獲得一種模式。

mode()

pandas.Series的mode()方法將模式值返回為pandas.Series。如果使用tolist()列出此結(jié)果,則可以將模式值作為列表獲取。請(qǐng)注意,即使只有一種模式,也將是一個(gè)列表。

print(df['state'].mode())
# 0 ? ?CA
# 1 ? ?NY
# dtype: object

print(df['state'].mode().tolist())
# ['CA', 'NY']

print(df['age'].mode().tolist())
# [24.0]

使用apply()方法將mode()應(yīng)用于每列將產(chǎn)生具有列表類型元素的pandas.Series()。

s_mode = df.apply(lambda x: x.mode().tolist())
print(s_mode)
# name ? ? [Alice, Charlie, Dave, Ellen, Frank]
# age ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?[24.0]
# state ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?[CA, NY]
# point ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?[70.0]
# dtype: object

print(type(s_mode))
# <class 'pandas.core.series.Series'>

print(s_mode['name'])
# ['Alice', 'Charlie', 'Dave', 'Ellen', 'Frank']

print(type(s_mode['name']))
# <class 'list'>

mode()也作為pandas.DataFrame的方法提供。返回pandas.DataFrame。由于各列的模式數(shù)不同,所以空缺部分成為缺失值NaN。

print(df.mode())
#       name   age state  point
# 0    Alice  24.0    CA   70.0
# 1  Charlie   NaN    NY    NaN
# 2     Dave   NaN   NaN    NaN
# 3    Ellen   NaN   NaN    NaN
# 4    Frank   NaN   NaN    NaN

可以使用count()方法獲得每列中的模式數(shù),該方法對(duì)不缺少值NaN的元素?cái)?shù)進(jìn)行計(jì)數(shù)。

print(df.mode().count())
# name     5
# age      1
# state    2
# point    1
# dtype: int64

describe()

同樣,正如我在開(kāi)始時(shí)所寫的那樣,describe()方法可用于共同計(jì)算每一列的唯一元素的數(shù)量,模式值及其頻率(出現(xiàn)的次數(shù))。每個(gè)項(xiàng)目都可以使用loc []獲得。

print(df.astype('str').describe())
# ? ? ? ? ?name ? age state point
# count ? ? ? 6 ? ? 6 ? ? 6 ? ? 6
# unique ? ? ?6 ? ? 5 ? ? 4 ? ? 5
# top ? ? Frank ?24.0 ? ?CA ?70.0
# freq ? ? ? ?1 ? ? 2 ? ? 2 ? ? 2

print(df.astype('str').describe().loc['top'])
# name ? ? Frank
# age ? ? ? 24.0
# state ? ? ? CA
# point ? ? 70.0
# Name: top, dtype: object

在describe()中,由列類型dtype計(jì)算出的項(xiàng)是不同的,因此使用astype()進(jìn)行類型轉(zhuǎn)換(轉(zhuǎn)換)。

歸一化頻率

如上所述,當(dāng)將value_counts()的參數(shù)歸一化設(shè)置為True時(shí),將歸一化以使總數(shù)變?yōu)?的值被返回。

請(qǐng)注意,如果包含缺失值NaN,則該值將根據(jù)參數(shù)dropna的設(shè)置而有所不同。

比較多個(gè)數(shù)據(jù)的頻率分布時(shí),很方便。

print(df['state'].value_counts(dropna=False, normalize=True))
# NY     0.333333
# CA     0.333333
# TX     0.166667
# NaN    0.166667
# Name: state, dtype: float64

到此這篇關(guān)于Pandas計(jì)算元素的數(shù)量和頻率(出現(xiàn)的次數(shù))的文章就介紹到這了,更多相關(guān)Pandas計(jì)算元素?cái)?shù)量和頻率內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python 的 sum() Pythonic 的求和方法詳細(xì)

    Python 的 sum() Pythonic 的求和方法詳細(xì)

    Python 的內(nèi)置函數(shù)sum()是一種對(duì)數(shù)值列表求和的有效且Pythonic 的方法。將多個(gè)數(shù)字相加是許多計(jì)算中常見(jiàn)的中間步驟,因此sum()對(duì)于 Python 程序員來(lái)說(shuō)是一個(gè)非常方便的工具。下面文章就讓我們一起來(lái)看具體內(nèi)容吧
    2021-10-10
  • 零基礎(chǔ)寫python爬蟲(chóng)之抓取糗事百科代碼分享

    零基礎(chǔ)寫python爬蟲(chóng)之抓取糗事百科代碼分享

    前面我們介紹了如何抓取百度貼吧文章,然后講解了python的神器正則表達(dá)式,下面,我們就把2者結(jié)合起來(lái),詳細(xì)介紹下,如何來(lái)抓取到糗事百科里面的指定內(nèi)容
    2014-11-11
  • python3利用ctypes傳入一個(gè)字符串類型的列表方法

    python3利用ctypes傳入一個(gè)字符串類型的列表方法

    今天小編就為大家分享一篇python3利用ctypes傳入一個(gè)字符串類型的列表方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-02-02
  • 淺談在JupyterNotebook下導(dǎo)入自己的模塊的問(wèn)題

    淺談在JupyterNotebook下導(dǎo)入自己的模塊的問(wèn)題

    這篇文章主要介紹了淺談在JupyterNotebook下導(dǎo)入自己的模塊的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-04-04
  • Python制作微信機(jī)器人教程詳解

    Python制作微信機(jī)器人教程詳解

    這篇文章主要介紹了Python如何實(shí)現(xiàn)微信機(jī)器人,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2021-12-12
  • 安裝conda搭建python環(huán)境保姆級(jí)教程(超詳細(xì)!)

    安裝conda搭建python環(huán)境保姆級(jí)教程(超詳細(xì)!)

    這篇文章主要給大家介紹了關(guān)于安裝conda搭建python環(huán)境保姆級(jí)教程的相關(guān)資料,conda可以理解為一個(gè)工具,也是一個(gè)可執(zhí)行命令,其核心功能是包管理和環(huán)境管理,需要的朋友可以參考下
    2023-11-11
  • 基于Python實(shí)現(xiàn)新年倒計(jì)時(shí)

    基于Python實(shí)現(xiàn)新年倒計(jì)時(shí)

    眼看馬上春節(jié)就要來(lái)臨了,所以滿懷期待的寫了一個(gè)Python新年倒計(jì)時(shí)的小工具!文中的示例代碼簡(jiǎn)潔易懂,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-01-01
  • windows下 兼容Python2和Python3的解決方法

    windows下 兼容Python2和Python3的解決方法

    這篇文章主要介紹了windows下 兼容Python2和Python3的解決方法,需要的朋友可以參考下
    2018-12-12
  • python依賴安裝兩種常用方式

    python依賴安裝兩種常用方式

    這篇文章主要給大家介紹了關(guān)于python依賴安裝兩種常用方式的相關(guān)資料,python本身做為一門解釋性語(yǔ)言,說(shuō)它功能強(qiáng)大,是因?yàn)樗兄S富的模塊或稱之為依賴(包),需要的朋友可以參考下
    2023-10-10
  • 基于python繪制科赫雪花

    基于python繪制科赫雪花

    這篇文章主要為大家詳細(xì)介紹了基于python繪制科赫雪花,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-06-06

最新評(píng)論

高要市| 麟游县| 北宁市| 三穗县| 大安市| 南通市| 泗水县| 昭苏县| 林州市| 沾益县| 紫金县| 武平县| 呼和浩特市| 临汾市| 青海省| 盐源县| 通海县| 舟山市| 准格尔旗| 澜沧| 太白县| 获嘉县| 阳曲县| 象州县| 汤原县| 温泉县| 若尔盖县| 分宜县| 西吉县| 乌兰县| 博客| 怀化市| 收藏| 望奎县| 台北县| 凤山县| 房山区| 阜南县| 嵩明县| 滦平县| 新沂市|