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

Pandas 透視表和交叉表的實現(xiàn)示例

 更新時間:2024年07月26日 10:50:05   作者:程序那點事hhu  
本文主要介紹了Pandas 透視表和交叉表的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

數(shù)學原理:

交叉表是一種在二維數(shù)據(jù)表格中統(tǒng)計頻數(shù)的方法。它將數(shù)據(jù)按照指定的行和列進行分組,然后計算每個組合的頻數(shù)。交叉表的數(shù)學原理可以用以下步驟來描述:

1. 數(shù)據(jù)分組: 首先,根據(jù)交叉表的行和列索引,將數(shù)據(jù)進行分組。

2. 頻數(shù)統(tǒng)計: 對于每個分組,統(tǒng)計該分組內(nèi)的觀測值數(shù)量(頻數(shù))。

3. 填充表格: 將統(tǒng)計得到的頻數(shù)填充到交叉表的相應位置上。

交叉表的優(yōu)勢在于它可以快速地提供多個變量之間的關系,尤其是在分類變量之間的分析上特別有用。

透視表是一種根據(jù)一個或多個鍵對數(shù)據(jù)進行聚合的方法,然后在行和列上對數(shù)據(jù)進行分組。它提供了更靈活的方式來匯總和分析數(shù)據(jù)。透視表的數(shù)學原理可以用以下步驟來描述:

1. 數(shù)據(jù)聚合: 根據(jù)透視表的行和列索引,對原始數(shù)據(jù)進行分組和聚合。這通常涉及到某種形式的數(shù)據(jù)聚合操作,如求和、平均值等。

2. 行列分組: 將聚合后的數(shù)據(jù)根據(jù)透視表的行和列索引進行進一步的分組,以形成透視表格。

3. 填充表格: 將聚合后的數(shù)據(jù)填充到透視表的相應位置上。

透視表相比于交叉表更加靈活,因為它允許我們在生成表格時進行更多的定制,如使用不同的聚合函數(shù)、添加行/列邊距匯總等??偟膩碚f,交叉表和透視表都是用于匯總和分析數(shù)據(jù)的工具,它們的數(shù)學原理都涉及到數(shù)據(jù)的分組、聚合和填充,但透視表相比于交叉表在功能上更加靈活。

表格總結(jié):

讓我們以表格的形式呈現(xiàn)交叉表和透視表的數(shù)學原理的相同點和不同點:

方面

交叉表

透視表

數(shù)據(jù)處理方式

對數(shù)據(jù)進行頻數(shù)統(tǒng)計和匯總

對數(shù)據(jù)進行分組、聚合和填充

數(shù)據(jù)處理步驟

1. 數(shù)據(jù)分組 2. 頻數(shù)統(tǒng)計 3. 填充表格

1. 數(shù)據(jù)聚合 2. 行列分組 3. 填充表格

行列索引的使用

使用指定的行和列索引對數(shù)據(jù)進行分組

使用指定的行和列索引對數(shù)據(jù)進行分組

聚合函數(shù)的使用

不常用,通常是簡單的頻數(shù)統(tǒng)計

可以使用各種聚合函數(shù),如求和、平均值等

靈活性

較低,功能相對簡單

較高,可以進行更多的定制,如添加邊距匯總、使用不同的聚合函數(shù)等

用途

用于統(tǒng)計頻數(shù)、探索分類變量之間的關系

用于數(shù)據(jù)的匯總、分析和可視化

這個表格簡明地總結(jié)了交叉表和透視表在數(shù)學原理上的相同點和不同點。雖然它們都用于數(shù)據(jù)的匯總和分析,但在處理方式、步驟、靈活性和用途等方面有所不同。

數(shù)據(jù)交叉表分析

pd.crosstab()分析

數(shù)據(jù)交叉表分析是一種統(tǒng)計方法,用于匯總和分析兩個或多個變量之間的關系。在 Pandas 中,可以使用 pd.crosstab() 函數(shù)來進行數(shù)據(jù)交叉表分析。讓我們以一個示例來說明其用法:

具體參數(shù):

  • index: 想要作為行索引的列名或者數(shù)組,可選參數(shù)。
  • columns: 想要作為列索引的列名或者數(shù)組,可選參數(shù)。
  • values: 可選參數(shù),用于指定要聚合的數(shù)值列名或者數(shù)組。
  • aggfunc: 可選參數(shù),指定聚合函數(shù),例如 sum、mean、count 等,默認為 count。
  • rownames: 可選參數(shù),用于設置行索引的名稱。
  • colnames: 可選參數(shù),用于設置列索引的名稱。
  • margins: 可選參數(shù),布爾值,默認為 False,表示是否添加行/列邊距匯總。
  • normalize: 可選參數(shù),參數(shù)用于控制交叉表的歸一化方式。歸一化是將數(shù)據(jù)轉(zhuǎn)換為相對值的過程,通常通過除以總和來實現(xiàn)。normalize 參數(shù)可以設置為不同的值,具體含義如下 normalize:默認為False,是否要進行規(guī)范化。

如果傳入為‘all’或者是True,將所有的值進行歸一化。

如果傳入為‘index’,根據(jù)每行進行歸一化。

如果傳入為‘columns’,根據(jù)每列進行歸一化。

如果margins為True,小計列和行也會進行歸一化。

代碼示例

import pandas as pd

# 創(chuàng)建示例數(shù)據(jù)

data = {

    'Salesperson': ['Alice', 'Bob', 'Alice', 'Bob', 'Alice', 'Bob'],

    'Product': ['A', 'B', 'A', 'B', 'A', 'B'],

    'Month': [1, 1, 2, 2, 3, 3],

    'Amount': [100, 200, 150, 250, 180, 220]

}

df = pd.DataFrame(data)

# 創(chuàng)建交叉表1:統(tǒng)計銷售人員和產(chǎn)品類型的數(shù)量

cross_table1 = pd.crosstab(df['Salesperson'], df['Product'])

print("Cross Table 1:")

print(cross_table1)

# 創(chuàng)建交叉表2:統(tǒng)計每個銷售人員在每個月份的銷售總額

cross_table2 = pd.crosstab(df['Salesperson'], df['Month'], values=df['Amount'], aggfunc='sum')

print("\nCross Table 2:")

print(cross_table2)

# 創(chuàng)建交叉表3:包含行/列邊距匯總

cross_table3 = pd.crosstab(df['Salesperson'], df['Product'], margins=True)

print("\nCross Table 3:")

print(cross_table3)

# 創(chuàng)建交叉表4:歸一化,將每個值除以每行的總和

cross_table4 = pd.crosstab(df['Salesperson'], df['Product'], normalize='index')

print("\nCross Table 4:")

print(cross_table4)

不同 normalize 參數(shù)值的效果:

import pandas as pd

data = {

    'Salesperson': ['Alice', 'Bob', 'Alice', 'Bob', 'Alice', 'Bob'],

    'Product': ['A', 'B', 'A', 'B', 'A', 'B'],

    'Amount': [100, 200, 150, 250, 180, 220]

}

df = pd.DataFrame(data)

# 不進行歸一化

cross_table_false = pd.crosstab(df['Salesperson'], df['Product'], normalize=False)

print("Without normalization:")

print(cross_table_false)

# 對每個行進行歸一化

cross_table_row = pd.crosstab(df['Salesperson'], df['Product'], normalize='index')

print("\nNormalized by row:")

print(cross_table_row)

# 每個列進行歸一化

cross_table_col = pd.crosstab(df['Salesperson'], df['Product'], normalize='columns')

print("\nNormalized by column:")

print(cross_table_col)

# 對整個表進行歸一化

cross_table_all = pd.crosstab(df['Salesperson'], df['Product'], normalize='all')

print("\nNormalized by all:")

print(cross_table_all)

數(shù)據(jù)透視表分析

pd.pivot_table()分析

透視表是一種數(shù)據(jù)匯總工具,允許你根據(jù)一個或多個鍵對數(shù)據(jù)進行聚合,然后在行和列上對數(shù)據(jù)進行分組。這使得你可以更輕松地理解數(shù)據(jù)的結(jié)構(gòu)和關系,并從中提取有價值的信息。

pd.pivot_table() 函數(shù)可以將原始數(shù)據(jù)轉(zhuǎn)換為透視表格式,它提供了靈活的參數(shù)設置,使得你可以根據(jù)自己的需求定制透視表的形式。

參數(shù)介紹:

  • data: DataFrame,表示要進行透視操作的原始數(shù)據(jù)。
  • values: 需要聚合的列名,可以是單個列名或者包含多個列名的列表。
  • index: 透視表的行索引,可以是單個列名或者包含多個列名的列表。
  • columns: 透視表的列索引,可以是單個列名或者包含多個列名的列表。
  • aggfunc: 聚合函數(shù),用于對值進行聚合,默認為 'mean'。
  • fill_value: 在透視表中替換缺失值的值,默認為 None。
  • margins: 是否添加行/列邊距匯總,默認為 False。
  • margins_name: 邊距匯總的名稱,默認為 'All'。
  • dropna: 是否刪除包含缺失值的行/列,默認為 True。

代碼示例

import pandas as pd
data = {
    'Salesperson': ['Alice', 'Bob', 'Alice', 'Bob', 'Alice', 'Bob'],
    'Product': ['A', 'B', 'A', 'B', 'A', 'B'],
    'Amount': [100, 200, 150, 250, 180, 220]
}
df = pd.DataFrame(data)
# 創(chuàng)建透視表
pivot_table_basic = pd.pivot_table(df, values='Amount', index='Salesperson', columns='Product', aggfunc='sum', fill_value=0)
print("Basic Pivot Table:")
print(pivot_table_basic)
添加行/列邊距匯總
# 創(chuàng)建透視表并添加行/列邊距匯總
pivot_table_with_margins = pd.pivot_table(df, values='Amount', index='Salesperson', columns='Product', aggfunc='sum', fill_value=0, margins=True)
print("\nPivot Table with Margins:")
print(pivot_table_with_margins)
# 創(chuàng)建透視表并使用不同的聚合函數(shù)
pivot_table_aggfunc = pd.pivot_table(df, values='Amount', index='Salesperson', columns='Product', aggfunc='mean', fill_value=0)
print("\nPivot Table with Different Aggregation Function (mean):")
print(pivot_table_aggfunc)
# 創(chuàng)建透視表并填充缺失值
pivot_table_fill_value = pd.pivot_table(df, values='Amount', index='Salesperson', columns='Product', aggfunc='sum', fill_value='No Sales')
print("\nPivot Table with Fill Value for Missing Data:")
print(pivot_table_fill_value)
# 創(chuàng)建透視表并使用多個行索引和列索引
df['Year'] = pd.to_datetime('today').year
pivot_table_multi_index = pd.pivot_table(df, values='Amount', index=['Salesperson', 'Year'], columns=['Product'], aggfunc='sum', fill_value=0)
print("\nPivot Table with Multiple Index and Columns:")
print(pivot_table_multi_index)

到此這篇關于Pandas 透視表和交叉表的實現(xiàn)示例的文章就介紹到這了,更多相關Pandas 透視表和交叉表內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家! 

相關文章

  • python爬取鏈家二手房的數(shù)據(jù)

    python爬取鏈家二手房的數(shù)據(jù)

    相信大家買房前都會在網(wǎng)上找找資料,看看行情,問問朋友,今天就用python帶大家扒一扒《鏈家二手房》的數(shù)據(jù)
    2021-05-05
  • Python實現(xiàn)二分法算法實例

    Python實現(xiàn)二分法算法實例

    這篇文章主要介紹了Python實現(xiàn)二分法算法實例,本文先是介紹了算法規(guī)則,然后給出了實現(xiàn)例子,需要的朋友可以參考下
    2015-02-02
  • python計算兩個數(shù)的百分比方法

    python計算兩個數(shù)的百分比方法

    今天小編就為大家分享一篇python計算兩個數(shù)的百分比方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • 注意import和from import 的區(qū)別及說明

    注意import和from import 的區(qū)別及說明

    這篇文章主要介紹了注意import和from import 的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • Pytorch 多塊GPU的使用詳解

    Pytorch 多塊GPU的使用詳解

    今天小編就為大家分享一篇Pytorch 多塊GPU的使用詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Python中使用pip換源的流程分析

    Python中使用pip換源的流程分析

    pip是一個用于安裝、升級和管理Python庫的工具,它允許你從Python包索引(PyPI)下載和安裝第三方庫,在Python開發(fā)過程中,我們經(jīng)常需要安裝各種第三方庫,本文給大家分享Python中使用pip換源的詳細指南,感興趣的朋友一起看看吧
    2024-12-12
  • Python裝飾器原理與實戰(zhàn)全解

    Python裝飾器原理與實戰(zhàn)全解

    這篇文章主要介紹了Python裝飾器原理與實戰(zhàn),裝飾器是Python中一種強大的特性,它允許我們以一種簡潔、優(yōu)雅的方式增強函數(shù)的功能,通過掌握裝飾器的高級應用,我們可以編寫更加模塊化、可維護的代碼
    2026-05-05
  • Python多進程、多線程、協(xié)程典型示例解析(最新推薦)

    Python多進程、多線程、協(xié)程典型示例解析(最新推薦)

    這篇文章主要介紹了Python多進程、多線程、協(xié)程典型示例解析(最新推薦),本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2025-05-05
  • python實現(xiàn)批量壓縮指定目錄下的文件夾

    python實現(xiàn)批量壓縮指定目錄下的文件夾

    這篇文章主要介紹了利用Python實現(xiàn)批量壓縮指定目錄下的文件夾的示例代碼,文中代碼示例講解詳細,感興趣的小伙伴快跟隨小編一起動手試一試
    2023-08-08
  • Python?format字符串格式化函數(shù)的使用

    Python?format字符串格式化函數(shù)的使用

    本文主要介紹了Python?format字符串格式化函數(shù)的使用,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01

最新評論

荥经县| 吉首市| 股票| 灵武市| 鄂尔多斯市| 广河县| 新丰县| 翁源县| 桓台县| 靖边县| 容城县| 广德县| 岳池县| 墨脱县| 于田县| 望都县| 玉屏| 昌平区| 呼玛县| 秭归县| 建始县| 大悟县| 乐昌市| 景德镇市| 玉门市| 射洪县| 郧西县| 九江县| 开原市| 邳州市| 盘锦市| 潍坊市| 油尖旺区| 鲜城| 特克斯县| 民丰县| 莱西市| 镇坪县| 永春县| 新民市| 宜川县|