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

一文搞懂Pandas數(shù)據(jù)透視的4個(gè)函數(shù)的使用

 更新時(shí)間:2022年06月16日 16:08:32   作者:Python丁小杰  
今天主要和大家分享Pandas中四種有關(guān)數(shù)據(jù)透視的通用函數(shù),在數(shù)據(jù)處理中遇到這類需求時(shí),能夠很好地應(yīng)對,快跟隨小編一起學(xué)習(xí)一下吧

大家好,我是丁小杰!

今天和大家分享Pandas中四種有關(guān)數(shù)據(jù)透視的通用函數(shù),在數(shù)據(jù)處理中遇到這類需求時(shí),能夠很好地應(yīng)對。

pandas.melt()

melt函數(shù)的主要作用是將DataFrame從寬格式轉(zhuǎn)換成長格式。

pandas.melt(frame,id_vars=None, value_vars=None, var_name=None, value_name='value', col_level=None, ignore_index=True)

參數(shù)含義

  • id_vars:tuple, list, or ndarray,可選,作為標(biāo)識(shí)符變量的列
  • value_vars:tuple, list, or ndarray, 可選,透視列,如果未指定,則使用未設(shè)置為id_vars的所有列。
  • var_name:scalar,默認(rèn)為None,使用variable作為列名
  • value_name:標(biāo)量, default ‘value’,value列的名稱
  • col_level:int or str, 可選,如果列是多層索引,melt將應(yīng)用于指定級別
  • ignore_index:bool, 默認(rèn)為True,相當(dāng)于從0開始重新排序。如果為False,則保留原來的索引,索引標(biāo)簽將出現(xiàn)重復(fù)。

看個(gè)例子先:

import?pandas?as?pd

df?=?pd.DataFrame(
????{'地區(qū)':?['A',?'B',?'C'],
?????'2020':?[80,?60,?40],
?????'2021':?[800,?600,?400],?
?????'2022':?[8000,?6000,?4000]})

pd.melt(df,
????????id_vars=['地區(qū)'],
????????value_vars=['2020',?'2021',?'2022'])

設(shè)置var_namevalue_name。

df?=?pd.melt(df,
?????????????id_vars=['地區(qū)'],
?????????????value_vars=['2020',?'2021',?'2022'],
?????????????var_name='年份',
?????????????value_name='銷售額')

pandas.pivot()

pivot函數(shù)主要用于通過索引及列值對DataFrame重構(gòu)。

pandas.pivot(data, index=None, columns=None, values=None)

參數(shù)含義

  • data:DataFrame對象
  • index:可選,用于新DataFrame的索引
  • columns:用于創(chuàng)建新DataFrame的列
  • values:可選,用于填充新DataFrame的值

用上面的結(jié)果舉個(gè)例子:

df.pivot(index='年份',
?????????columns='地區(qū)',
?????????values='銷售額')

也可以寫成以下格式。

df.pivot(index='年份',?columns='地區(qū)')['銷售額']

添加一個(gè)銷量列,同時(shí)統(tǒng)計(jì)兩個(gè)values,這樣會(huì)使columns變成多層索引。

df['銷量']?=?df['銷售額']/10
df.pivot(index='年份',
?????????columns='地區(qū)',
?????????values=['銷售額',?'銷量'])

添加一個(gè)月份列,指定兩個(gè)index。

df['月份']?=?[f'{m}月'?for?m?in?range(1,?4)]*3
df.pivot(index=['年份',?'月份'],
?????????columns='地區(qū)',
?????????values='銷售額')

使用pivot時(shí)需要注意,當(dāng)index,columns出現(xiàn)重復(fù)時(shí),會(huì)導(dǎo)致ValueError。

df?=?pd.DataFrame(
????????{'地區(qū)':?['A',?'A',?'B',?'C'],
?????????'年份':?['2020',?'2020',?'2021',?'2022'],
?????????'銷售額':?[800,?600,?400,?200]})

df.pivot(index='地區(qū)',
?????????columns='年份',
?????????values='銷售額')
#?ValueError

pandas.pivot_table()

這個(gè)函數(shù)之前已經(jīng)單獨(dú)講過了,詳見Pandas玩轉(zhuǎn)數(shù)據(jù)透視表,相比于pivot,pivot_table的靈活性更強(qiáng)。

pandas.crosstab()

crosstab函數(shù)計(jì)算兩個(gè)(或多個(gè))數(shù)組的簡單交叉表。默認(rèn)情況下計(jì)算元素的頻率表。

pandas.crosstab(index, columns, values=None, rownames=None, colnames=None, aggfunc=None, margins=False, margins_name='All', dropna=True, normalize=False)

看下例子:

這里默認(rèn)計(jì)算頻率。

import?numpy?as?np
array_A?=?np.array(["one",?"two",?"two",?"three",?"three",?"three"],?dtype=object)
array_B?=?np.array(["Python",?"Python",?"Python",?"C",?"C",?"C"],?dtype=object)
array_C?=?np.array(["Y",?"Y",?"Y",?"N",?"N",?"N"])
pd.crosstab(array_A,
???????????[array_B,?array_C],
???????????rownames=['array_A'],
???????????colnames=['array_B',?'array_C'])

新建一個(gè)values列,計(jì)算總和。

array_D?=?np.array([1,?4,?9,?16,?25,?36])
pd.crosstab(index=array_A,
????????????columns=[array_B,?array_C],
????????????rownames=['array_A'],
????????????colnames=['array_B',?'array_C'],
????????????values=array_D,
????????????aggfunc='sum')

到此這篇關(guān)于一文搞懂Pandas數(shù)據(jù)透視的4個(gè)函數(shù)的使用的文章就介紹到這了,更多相關(guān)Pandas數(shù)據(jù)透視內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • OpenCV+python實(shí)現(xiàn)實(shí)時(shí)目標(biāo)檢測功能

    OpenCV+python實(shí)現(xiàn)實(shí)時(shí)目標(biāo)檢測功能

    這篇文章主要介紹了OpenCV+python實(shí)現(xiàn)實(shí)時(shí)目標(biāo)檢測功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • 在Django中實(shí)現(xiàn)定時(shí)任務(wù)的多種方法

    在Django中實(shí)現(xiàn)定時(shí)任務(wù)的多種方法

    在 Django 項(xiàng)目中實(shí)現(xiàn)定時(shí)任務(wù)可以幫助自動(dòng)化執(zhí)行一些后臺(tái)任務(wù),如數(shù)據(jù)清理、定期報(bào)告生成等,以下是幾種常見的實(shí)現(xiàn)方式,每種方法都有其獨(dú)特的優(yōu)勢和適用場景,感興趣的小伙伴跟著小編一起來看看吧
    2024-08-08
  • python 基于selenium實(shí)現(xiàn)鼠標(biāo)拖拽功能

    python 基于selenium實(shí)現(xiàn)鼠標(biāo)拖拽功能

    這篇文章主要介紹了python 基于selenium實(shí)現(xiàn)鼠標(biāo)拖拽功能的方法,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-12-12
  • OpenCV HSV顏色識(shí)別及HSV基本顏色分量范圍

    OpenCV HSV顏色識(shí)別及HSV基本顏色分量范圍

    這篇文章主要介紹了OpenCV HSV顏色識(shí)別及HSV基本顏色分量范圍,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-03-03
  • Python?EasyDict庫以屬性方式訪問字典元素(無需使用方括號(hào)和鍵)

    Python?EasyDict庫以屬性方式訪問字典元素(無需使用方括號(hào)和鍵)

    在Python中,字典(dict)是一種常用的數(shù)據(jù)結(jié)構(gòu),用于存儲(chǔ)鍵值對,然而,有時(shí)候我們希望以屬性的方式訪問字典中的元素,而無需使用方括號(hào)和鍵,這就是EasyDict庫的用武之地,本文將深入介紹EasyDict庫,展示其強(qiáng)大的功能和如何通過示例代碼更好地利用它
    2023-12-12
  • Python查詢阿里巴巴關(guān)鍵字排名的方法

    Python查詢阿里巴巴關(guān)鍵字排名的方法

    這篇文章主要介紹了Python查詢阿里巴巴關(guān)鍵字排名的方法,涉及Python基于urllib模塊解析html頁面及進(jìn)行URL查詢的相關(guān)技巧,需要的朋友可以參考下
    2015-07-07
  • python新式類和經(jīng)典類的區(qū)別實(shí)例分析

    python新式類和經(jīng)典類的區(qū)別實(shí)例分析

    這篇文章主要介紹了python新式類和經(jīng)典類的區(qū)別,結(jié)合實(shí)例形式分析了python新式類和經(jīng)典類的功能、區(qū)別與使用方法,需要的朋友可以參考下
    2020-03-03
  • python代碼xml轉(zhuǎn)txt實(shí)例

    python代碼xml轉(zhuǎn)txt實(shí)例

    這篇文章主要介紹了python代碼xml轉(zhuǎn)txt實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • Python編程之微信推送模板消息功能示例

    Python編程之微信推送模板消息功能示例

    這篇文章主要介紹了Python編程之微信推送模板消息功能,結(jié)合實(shí)例形式分析了Python微信推送消息接口的調(diào)用相關(guān)操作技巧,需要的朋友可以參考下
    2017-08-08
  • python實(shí)現(xiàn)K折交叉驗(yàn)證

    python實(shí)現(xiàn)K折交叉驗(yàn)證

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)K折交叉驗(yàn)證,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-04-04

最新評論

阿城市| 牟定县| 宜宾市| 咸阳市| 桐城市| 赣榆县| 神池县| 英山县| 石嘴山市| 辉南县| 葵青区| 高雄市| 和田县| 柘荣县| 普兰店市| 塔河县| 凌云县| 潜山县| 富源县| 武义县| 西充县| 兴化市| 凤冈县| 探索| 泗洪县| 贵州省| 彰化市| 宁武县| 福清市| 许昌县| 马山县| 泾阳县| 新津县| 甘泉县| 洛南县| 轮台县| 喀什市| 苗栗市| 大安市| 托克逊县| 苍南县|