成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

數據分析基礎 | Python數據交叉表,你學會了嗎?

大數據 數據分析
數據交叉表是數據分析中非常重要的工具,掌握它可以讓你更加高效地進行數據處理和可視化呈現。

1.引言

數據交叉表(也稱為列聯表或交叉表)是一種統計方法,用于分析和展示兩個或多個分類變量之間的關系。在 Python 中,我們可以使用 Pandas 庫中的crosstab函數來創建兩個或多個因子的交叉表,相比Excel,Python可以更多更快的處理數據,首先,引入幾個重要的包:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = [u'SimHei']
plt.rcParams['axes.unicode_minus'] = False

2.數據

使用武漢市某超市過去一個月的銷售數據(如有需要可聯系作者獲?。?,創建一個DataFrame對象,作為數據源,并通過可視化各商品的銷售情況,找出最熱賣的十樣商品,代碼如下:

data = pd.read_excel('3.1-3.31商品銷售流水.xls')
# 計算每個商品的出現次數
product_counts = data['品名'].value_counts()
# 轉換成DataFrame形式
product_counts = pd.DataFrame({'商品名稱': product_counts.index, '出現次數': product_counts.values})
# 去掉袋子
product_counts = product_counts.drop([0, 3])
# 可視化銷售情況
top_10 = product_counts.head(10)
ax = top_10.plot(kind='bar', x='商品名稱', y='出現次數', figsize=(10, 6), color='skyblue')
plt.title('Top 10 Most Frequent Products in March')
plt.xlabel('Product')
plt.ylabel('Frequency')
plt.xticks(rotation=45, ha='right')
plt.tight_layout()
# 在柱子上方顯示數值
for p in ax.patches:
    ax.annotate(str(p.get_height()), (p.get_x() + p.get_width() / 2., p.get_height()), ha='center', va='center', xytext=(0, 5), textcoords='offset points')
plt.show()

結果如下:

圖片圖片

3.crosstab 函數

首先,介紹一下crosstab 函數:

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

看一下參數主要的作用:

index:必選參數,行索引,這是創建交叉表時必須指定的參數,用于定義交叉表的行索引。可以設置為DataFrame中的一個或多個列,以創建多層索引。

columns:必選參數,列索引,這是創建交叉表時必須指定的參數,用于定義交叉表的列索引。通常用于展示分類數據。

values:非必選參數,被計算的數據項,這是一個可選參數,指定需要在交叉表中進行聚合操作的列。如果沒有提供,交叉表將只計算行和列的組合數量。

rownames:非必選參數,行索引的名稱,這是一個可選參數,用于指定行索引的名稱。如果未指定,將使用 index參數中的名稱。

colnames:非必選參數,列索引的名稱,這是一個可選參數,用于指定列索引的名稱。如果未指定,將使用 columns參數中的名稱。

aggfunc:非必選參數,聚合函數,這是用于對交叉表中的數據進行聚合計算的函數,默認為 'default',表示使用 numpy 的 sum函數??梢愿鶕枰x擇其他聚合函數。

fill_values:非必選參數,填充NA值,這是一個可選參數,用于指定在交叉表中缺失值的填充值。如果未指定,缺失值將保留為 NaN。

margins:非必選參數,添加行列的總計,這是一個布爾值參數,默認為 False,表示不顯示行列的總計。如果設置為 True,則會在交叉表的行和列末尾添加總計。

margins_name:非必選參數,邊緣名稱,當 margins=True時,此參數用于設置邊緣行或列的名稱,默認值為 'All'。

dropna:非必選參數,是否丟棄NA值,這是一個布爾值參數,默認為 True,表示如果整行或整列都是NA值,則這些行或列將被丟棄。如果設置為 False,則這些行或列將被保留。

根據上述函數參數介紹,通過下面一個例子進行示例,假設我們有一個包含性別(Gender)、就業狀態(Employment Status)和年齡組(Age Group)的數據集,我們想要創建一個交叉表來分析不同性別和就業狀態的分布情況,并計算每個組合的人數。代碼如下:

import pandas as pd
# 示例數據
data2 = pd.DataFrame({
    'Gender': ['Male', 'Female', 'Female', 'Male', 'Female', 'Male'],
    'Employment Status': ['Employed', 'Unemployed', 'Employed', 'Employed', 'Unemployed', 'Employed'],
    'Age Group': ['20-30', '20-30', '30-40', '30-40', '20-30', '40-50']
})
# 創建交叉表
cross_table = pd.crosstab(
    index=data2['Gender'], 
    columns=data2['Employment Status'],
    margins=True, 
    margins_name='Total'
)
print(cross_table)

結果如下:

圖片圖片

4.熱力圖可視化交叉表

 根據前文crosstab 函數用法介紹,對本文使用的銷售數據創建交叉表,使用熱力圖可視化交叉表,對“讓利類型”和“top_10”創建數據交叉,代碼如下:

# 使用 crosstab 創建交叉表
cross_tab = pd.crosstab(data['讓利類型'],['top_10'] )
cross_tab
# 使用熱力圖可視化交叉表
sns.heatmap(cross_tab, annot=True, fmt="d")
plt.show()

結果如下:

圖片圖片

同理,對“原價”和“top_10”創建數據交叉,代碼如下:

# 使用 crosstab 創建交叉表
cross_tab = pd.crosstab(data['原價'],['top_10'] )
cross_tab
# 使用熱力圖可視化交叉表
sns.heatmap(cross_tab, annot=True, fmt="d")
plt.show()

結果如下:

圖片圖片

同理,對“類別名稱”和“top_10”創建數據交叉,代碼如下:

# 使用 crosstab 創建交叉表
cross_tab = pd.crosstab(data['類別名稱'], ['top_10'])
cross_tab
# 使用熱力圖可視化交叉表
sns.heatmap(cross_tab, annot=True, fmt="d")
plt.show()

結果如下:

圖片圖片

同理,對“品名”和“top_10”創建數據交叉,代碼如下:

# 使用 crosstab 創建交叉表
cross_tab = pd.crosstab(data['品名'],['top_10'] )
cross_tab
# 使用熱力圖可視化交叉表
sns.heatmap(cross_tab, annot=True, fmt="d")
plt.show()

結果如下:

圖片圖片

以上就是用Python構造數據交叉表的內容介紹。數據交叉表是數據分析中非常重要的工具,掌握它可以讓你更加高效地進行數據處理和可視化呈現。

責任編輯:武曉燕 來源: Stata and Python數據分析
相關推薦

2024-09-27 10:27:50

2023-08-29 08:11:01

AI工具游玩

2022-10-26 11:37:08

數據分析方法報告

2023-08-26 21:34:28

Spring源碼自定義

2024-01-11 08:21:33

Jetpack數據技術

2024-09-02 12:23:27

2024-08-21 08:27:30

擴展數據庫服務器

2024-07-11 08:29:57

大數據.NET工具

2023-09-07 07:13:51

2022-10-18 17:59:46

Bootstrap源碼父類

2023-03-08 08:42:55

MySQLcost量化

2023-09-12 07:26:46

2022-12-09 09:21:10

分庫分表算法

2023-08-01 12:51:18

WebGPT機器學習模型

2024-01-02 12:05:26

Java并發編程

2023-06-27 07:21:51

前端開發坑點

2022-09-22 12:03:14

網絡安全事件

2023-07-03 07:20:50

2024-01-19 08:25:38

死鎖Java通信

2024-02-04 00:00:00

Effect數據組件
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲 中文 欧美 日韩 在线观看 | 成人午夜影院 | 亚洲国产一区二区三区 | 精品伊人 | 久久久www成人免费无遮挡大片 | 国产一区欧美 | 日韩欧美福利视频 | 欧美视频1 | 亚洲福利精品 | 国产伦精品一区二区三区精品视频 | 久热精品在线观看视频 | 精品一区二区三区免费视频 | 国产免费一区二区三区 | 日本高清精品 | 国产91网站在线观看 | av手机在线免费观看 | 亚洲日本三级 | 欧美一级精品片在线看 | 亚洲精品免费视频 | 国产一区二区三区四区五区3d | 国产精品日韩高清伦字幕搜索 | 日本理论片好看理论片 | 国产精品自产拍 | 国内精品久久影院 | 中文字幕视频在线 | 人人鲁人人莫人人爱精品 | 伊人狼人影院 | 国产一区久久久 | 米奇7777狠狠狠狠视频 | av 一区二区三区 | 久久精品亚洲精品 | 亚洲精品高清视频在线观看 | 在线国产一区 | 亚洲成人动漫在线观看 | 免费看一区二区三区 | 欧美日韩电影一区二区 | 日韩不卡一区二区三区 | 久久伊人精品 | 成人免费在线观看 | 久久久久国产精品一区二区 | 最新国产在线 |