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

一行代碼制作數據分析交叉表,太便捷了

開發 后端
今天小編來介紹一下Pandas模塊中的另外一個函數corsstab(),我們可以通過調用該函數來制作交叉表,下面就來看看其中的主要流程和步驟吧。

在前文中我們了解到Pandas模塊中的pivot_table()函數可以用來制作數據透視表。

模塊導入和數據讀取

那我們按照慣例,首先導入模塊并且來讀取所要使用到的數據集,引用的依然是之前制作數據透視表的數據集

import pandas as pd
def load_data():
return pd.read_csv('coffee_sales.csv', parse_dates=['order_date'])

那這里小編是通過自定義一個函數,然后通過調用該函數來讀取數據,在實際工作當中每個人都可以根據自己的喜好來操作:

df = load_data()
df.head()

output

牛刀小試

交叉表是用于統計分組頻率的特殊透視表。簡單來說,就是將兩個或者多個列中不重復的元素組成一個新的DataFrame,新數據的行和列交叉的部分值為其組合在原數據中的數量,我們先來看一個簡單的例子,代碼如下:

pd.crosstab(index = df['region'], columns = df['product_category'])

output

在行方向上代表的是不同的地區,而在列方向上代表的則是不同的咖啡種類,出來的結果表示的是不同地區不同咖啡種類的匯總數據,

df[(df["region"] == "Central")&(df["product_category"] == "Tea")].shape[0]

output

336

例如我們篩選出地區是中部地區并且品種是茶飲的數據,出來的結果總共有336條數據,和交叉表中的結果一致。

我們可以對列名以及行索引更換名字,通過調用rownames參數以及colnames參數,代碼如下:

pd.crosstab(
index = df['region'],
columns = df['product_category'],
rownames=['US Region'],
colnames=['Product Category']
)

output

除了咖啡的品類之外,我們還想要知道到底不同品種的咖啡在批發和零售之間銷量的數據,就可以這么來操作:

pd.crosstab(
index = df['region'],
columns = [df['product_category'], df['market']]
)

output

或者是

pd.crosstab(
index = df['region'],
columns = [df['product_category'], df['market']],
rownames=['US Region'],
colnames=['Product Category', 'Market']
)

output

輸出的DataFrame數據集當中的列有兩層,最上面的是咖啡的種類,然后緊接著第二層的便是不同的市場,當然我們也可以在行方向上添加多個層次的索引,代碼如下:

pd.crosstab(
index = [df['region'], df['market']],
columns = df['product_category']
)

output

進階的操作

和pd.pivot_table()函數一樣,我們也可以通過調用當中的margin參數來給整合出來的數據做一個加總,代碼如下:

pd.crosstab(index = df['region'],
columns = df['product_category'],
margins = True)

output

我們還能指定該列的列名。

pd.crosstab(
index = df['region'],
columns = df['product_category'],
margins = True,
margins_name = 'Subtotals'
)

output

另外還有參數normalize用來將所有值除以值的總和進行歸一化。

pd.crosstab(index = df['region'],  
columns = df['product_category'],
normalize = True)

output

我們從美觀的角度出發,想要保留兩位小數,代碼如下:

pd.crosstab(
index = df['region'],
columns = df['product_category'],
normalize = True
).style.format('{:.2%}')

output

要是和之間的margin參數相結合來使用的話,將所有的結果匯總到一起等于100%,代碼如下:

pd.crosstab(
index = df['region'],
columns = df['product_category'],
margins = True,
normalize = True
).style.format('{:.2%}')

output

進一步衍生

最后還有values以及aggfunc兩參數,其中aggfunc參數具體指的是指定聚合函數,例如平均數、求和以及中位數等統計方法,對value參數指定的連續性變量的列進行計算。

df.info()

output

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 4248 entries, 0 to 4247
Data columns (total 9 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 order_date 4248 non-null datetime64[ns]
1 market 4248 non-null object
2 region 4248 non-null object
3 product_category 4248 non-null object
4 product 4248 non-null object
5 cost 4248 non-null int64
6 inventory 4248 non-null int64
7 net_profit 4248 non-null int64
8 sales 4248 non-null int64
dtypes: datetime64[ns](1), int64(4), object(4)
memory usage: 298.8+ KB

當前數據集中“market”、“region”、“product_category”、“product”四列是離散型變量,而有“cost”、“inventory”、“net_profit”、“sales”四列是連續性變量,分別代表的是成本、庫存、凈利潤以及銷量,其中我們想針對不同地區、不同咖啡種類的成本做一個平均值,那么代碼如下:

pd.crosstab(
index = df['region'],
columns = df['product_category'],
values = df['cost'],
aggfunc = 'mean'
)

output

要是我們想要對計算出來的結果保留兩位小數,代碼如下:

pd.crosstab(
index = df['region'],
columns = df['product_category'],
values = df['cost'],
aggfunc = 'mean'
).round(2)

output

當然要是針對存在缺失值的情況,我們也可以替換成其他值來處理,代碼如下:

pd.crosstab(
index = df['region'],
columns = df['product_category'],
values = df['cost'],
aggfunc = 'mean',
).fillna(0)

output

責任編輯:龐桂玉 來源: Python客棧
相關推薦

2022-06-17 09:21:53

Pandas代碼透視表

2021-04-29 22:38:04

Python數據庫SQL

2021-04-30 15:34:23

Python 開發編程語言

2024-12-27 09:12:12

C++17代碼元組

2016-12-02 08:53:18

Python一行代碼

2021-02-24 14:30:59

JavaScript語言開發

2024-05-29 12:47:00

2020-02-14 12:26:55

Python愛心情人節

2020-05-11 18:00:48

規范數據分析架構

2022-02-24 10:40:14

Python代碼

2020-05-15 09:32:50

TB數據Elasticsear

2014-02-12 13:43:50

代碼并行任務

2022-04-09 09:11:33

Python

2017-04-05 11:10:23

Javascript代碼前端

2025-04-21 10:43:21

2021-11-11 11:27:55

大數據分析系統

2015-03-20 14:51:09

Testin云測

2020-08-21 09:23:22

Python開發工具

2025-03-11 03:00:00

2020-08-19 10:30:25

代碼Python多線程
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品久久久久久国产 | 国产精品3区 | 亚洲精品国产a久久久久久 中文字幕一区二区三区四区五区 | 最新国产精品视频 | 视频精品一区二区三区 | 欧美精品在线播放 | 成人av一区 | 中文字字幕一区二区三区四区五区 | 国产精品欧美一区喷水 | 国产区在线视频 | 欧洲一区二区视频 | 久久国产精品一区二区三区 | 在线91| 欧美 日韩 国产 成人 在线 91 | 91在线视频观看 | 国产精品极品美女在线观看免费 | 在线日韩福利 | 在线观看av网站永久 | jizz中国日本 | 欧美黄色一区 | 日本成人中文字幕在线观看 | 欧美一区二区免费在线 | 国产农村妇女毛片精品久久麻豆 | 国产伦精品一区二区三区精品视频 | 国产免费观看一级国产 | 国产精品日韩欧美一区二区三区 | 欧美日韩亚洲一区 | 久久最新精品视频 | 99pao成人国产永久免费视频 | 91xxx在线观看 | 在线视频一区二区三区 | 国产精品免费观看 | av一二三区| 性欧美hd | 亚洲一区久久 | 国产精品久久久久久久午夜 | 黄色网址免费在线观看 | 国产欧美日韩一区二区三区 | 亚洲综合国产 | 欧美一级在线视频 | 国产成人精品一区二 |