日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

python 利用panda 實現列聯表(交叉表)

瀏覽:164日期:2022-06-28 10:38:54

交叉表(cross-tabulation,簡稱crosstab)是⼀種⽤于計算分組頻率的特殊透視表。

語法詳解:

pd.crosstab(index, # 分組依據 columns, # 列 values=None, # 聚合計算的值 rownames=None, # 列名稱 colnames=None, # 行名稱 aggfunc=None, # 聚合函數 margins=False, # 總計行/列 dropna=True, # 是否刪除缺失值 normalize=False # )1 crosstab() 實例11.1 讀取數據

import osimport numpy as npimport pandas as pdfile_name = os.path.join(path, ’Excel_test.xls’)df = pd.read_excel(io=file_name, # 工作簿路徑 sheetname=’透視表’, # 工作表名稱 skiprows=1, # 要忽略的行數 parse_cols=’A:D’ # 讀入的列 )df

python 利用panda 實現列聯表(交叉表)

1.2 pd.crosstab() 默認生成以行和列分類的頻數表

pd.crosstab(df[’客戶名稱’], df[’產品類別’])

python 利用panda 實現列聯表(交叉表)

1.3 設置跟多參數實現分類匯總

pd.crosstab(index=df[’客戶名稱’], columns=df[’產品類別’], values=df[’銷量’], aggfunc=’sum’, margins=True ).round(0).fillna(0).astype(’int’)

python 利用panda 實現列聯表(交叉表)

注:因為交叉表示透視表的特例,所以交叉表可以用透視表的函數實現。又因為透視表可以用更 python 的方式 groupby-apply 實現,所以,交叉表完全可以用 groupby-apply 的方式實現。

2 用分類匯總的方法實現 交叉表

df.groupby([’客戶名稱’, ’產品類別’]).apply(sum)

python 利用panda 實現列聯表(交叉表)

2.1 分類匯總、重新索引、設置數值格式綜合應用

c_tbl = df.groupby([’客戶名稱’, ’產品類別’]).apply(sum)[’銷量’].unstack()c_tbl[’總計’] = c_tbl.sum(axis=1) # 添加總計列c_tbl.fillna(0).round(0).astype(’int’)

python 利用panda 實現列聯表(交叉表)

軟件信息:

python 利用panda 實現列聯表(交叉表)

補充:使用python(pandas)將數據處理成交叉分組表

交叉分組表是匯總兩種變量數據的方法, 在很多場景可以用到, 本文會介紹如何使用pandas將包含兩個變量的數據集處理成交叉分組表.

環境

pandas

python 2.7

原理

用坐標軸來進行比喻, 其中一個變量作為x軸, 另一個作為y軸, 如果定位到數據則累加一, 將所有數據遍歷一遍, 最后的坐標軸就是一張交叉分組表(使用坐標軸展示的數據一般是連續的, 交叉分組表的數據是離散的).

具體實現

示例數據:

quality price0 bad 181 bad 172 great 523 good 284 excellent 885 great 636 bad 87 good 228 good 689 excellent 9810 great 5311 bad 1312 great 6213 good 4814 excellent 7815 great 6316 good 3717 great 6918 good 2819 excellent 8120 great 4321 good 3222 great 6223 good 2824 excellent 8225 great 53

代碼:

import pandas as pd from pandas import DataFrame, Series #生成數據 df = DataFrame([[’bad’, 18], [’bad’, 17], [’great’, 52], [’good’, 28], [’excellent’, 88], [’great’, 63], [’bad’, 8], [’good’, 22], [’good’, 68], [’excellent’, 98], [’great’, 53], [’bad’, 13], [’great’, 62], [’good’, 48], [’excellent’, 78], [’great’, 63], [’good’, 37], [’great’, 69], [’good’, 28], [’excellent’, 81], [’great’, 43], [’good’, 32], [’great’, 62], [’good’, 28], [’excellent’, 82], [’great’, 53]], columns = [’quality’, ’price’])#廣播使用的函數def quality_cut(data): s = Series(pd.cut(data[’price’], np.arange(0, 100, 10))) return pd.groupby(s, s).count()#進行分組處理df.groupby(df[’quality’]).apply(quality_cut)

結果:

python 利用panda 實現列聯表(交叉表)

交叉分組

詳細分析

從邏輯上來看, 為了達到對示例數據的交叉分組, 需要完成以下工作:

將數據以quality列進行分組.

將每個分組的數據分別進行cut, 以10為間隔.

將cut過的數據, 以cut的范圍為列進行分組

將所有數據組合到一起, row為quality, columns為cut的范圍

步驟1, pandasgroupby(...)接口, 會按照指定的列進行分組處理, 每一個分組, 存儲相同類別的數據

<class ’pandas.core.frame.DataFrame’> quality price0 bad 181 bad 176 bad 811 bad 13

而我們需要的, 只是price這列的數據, 所以單獨將這列拿出來, 進行cut, 最后得到我們要的series(步驟2, 步驟3)

price(0, 10] 1(10, 20] 3(20, 30] 0(30, 40] 0(40, 50] 0(50, 60] 0(60, 70] 0(70, 80] 0(80, 90] 0

使用pandas

apply()的廣播特性, 每一個分組的數據都會經過上述幾個步驟的處理, 最后與第一次分組row進行組合.

后記

估計能力有限, 這個問題想了很長時間, 沒想到pandas這么可以這么方便達成交叉分組的效果. 思考的時候主要是卡在數據組合上, 當數據量很大時通過多個步驟進行數據組合, 肯定是低效而且錯誤的. 最后仔細研究了groupby, dataframe, series, dataframeIndex等數據模型, 使用廣播特性用幾句代碼就完成了. 證明了pandas的高性能, 也提醒自己遇見問題一定要耐心分析。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。如有錯誤或未考慮完全的地方,望不吝賜教。

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
四虎在线精品| 蜜桃视频在线观看一区二区| 日韩一区二区三区四区五区| 日欧美一区二区| 亚洲免费观看高清完整版在线观| 六月婷婷一区| 日韩精品一级二级 | 美国三级日本三级久久99| 亚洲深夜福利| 亚洲精品少妇| 国产毛片精品| 国产一区丝袜| 蜜桃精品在线| 不卡av一区二区| 日韩中文字幕91| 日韩精品免费一区二区夜夜嗨| 国产欧美午夜| 国产一区二区三区不卡av| 精品丝袜在线| 美女国产一区| 国产日韩一区二区三免费高清| 麻豆久久久久久久| 在线看片国产福利你懂的| 欧美日韩一二| 综合色就爱涩涩涩综合婷婷| 国产精品日本一区二区三区在线| 免费视频亚洲| 青青草精品视频| 成人亚洲一区二区| 国产韩日影视精品| 日韩综合一区二区| 精品91福利视频| 性欧美69xoxoxoxo| 日韩高清国产一区在线| 91一区二区| 国产精品三上| 国产精品麻豆成人av电影艾秋| a天堂资源在线| 亚洲激情不卡| 久久av中文| 激情欧美一区二区三区| 日韩区欧美区| 国产一区调教| 亚洲主播在线| 国产一区调教| 日韩专区欧美专区| 国内揄拍国内精品久久| 美女黄网久久| 国产suv精品一区二区四区视频| 樱桃成人精品视频在线播放| 国产日韩一区| 五月婷婷亚洲| 国产精品一区二区美女视频免费看| a国产在线视频| 亚洲三级视频| 亚洲成人va| 欧美一级网站| 美女亚洲一区| 精品免费av一区二区三区| 免费日韩av片| 日本一区二区高清不卡| 亚洲精品成人一区| 成人精品亚洲| 久久99精品久久久野外观看| 99热精品在线| 四季av一区二区凹凸精品| 亚洲精品少妇| 亚洲爱爱视频| 国产伦精品一区二区三区在线播放| 久久高清精品| 精品亚洲自拍| 亚洲免费毛片| 欧美福利专区| 国产不卡av一区二区| 日韩和欧美一区二区三区| 99精品视频在线| 欧美aⅴ一区二区三区视频| 久久最新视频| 99久久夜色精品国产亚洲狼 | 国产欧美日韩| 久久先锋影音| 国产精品成人一区二区不卡| 日本不卡视频一二三区| 欧美日韩国产亚洲一区| 日本久久黄色| 国产精品黄网站| 日韩精品亚洲一区二区三区免费| 91精品二区| 在线看片福利| 久久精品一区二区三区中文字幕| 亚洲精品四区| 亚洲一区久久| 欧美二区视频| 92国产精品| 91亚洲精品在看在线观看高清| 欧美综合二区| 久久婷婷久久| 日韩欧美字幕| 国产一区二区三区不卡视频网站| 国产日韩欧美中文在线| 亚洲精品欧美| 男女激情视频一区| 狠狠爱www人成狠狠爱综合网| av在线资源| 精品国产亚洲一区二区在线观看| 欧美亚洲一区二区三区| 偷拍亚洲精品| 亚洲久久一区| 丝袜美腿亚洲一区二区图片| 婷婷国产精品| 欧美亚洲国产一区| 日本不良网站在线观看| 福利在线一区| 日本一区二区免费高清| 国产中文欧美日韩在线| 久久影视三级福利片| 欧美激情日韩| 国产精品白丝av嫩草影院| 国产精品亚洲欧美一级在线| 久久精品99国产精品日本| 日韩av电影一区| 久久国产视频网| 国产精品一区二区美女视频免费看| 青青伊人久久| 国产亚洲精品美女久久| 国产精品亚洲综合久久| 91成人在线精品视频| 欧美专区一区| 欧美经典一区| 国产成人精品福利| 成人片免费看| 久久久天天操| 一区在线视频观看| 蜜桃伊人久久| 视频一区日韩精品| 国产精品一页| 精品午夜久久| 日韩中文字幕高清在线观看| 99久久夜色精品国产亚洲1000部| 激情欧美一区二区三区| 模特精品在线| 亚洲小说春色综合另类电影| 日韩精品第二页| 国产精品网址| 国产黄大片在线观看| 久久久国产精品一区二区中文| 国内精品福利| 香蕉视频成人在线观看| 日韩1区2区3区| 国产精品国产三级在线观看| 精品欧美日韩精品| 久久亚洲专区| 最新国产精品| 欧美国产极品| 久久久777| 免费欧美在线视频| 欧美日韩午夜| 岛国av在线网站| 国产精品88久久久久久| 亚洲资源网站| 精品亚洲免a| 激情自拍一区| 日韩高清一区在线| 麻豆久久久久久| 99精品视频精品精品视频| 性欧美长视频| 国产精品久久久久9999高清| 日韩欧美看国产| 日韩中文字幕麻豆| 麻豆精品在线| 99视频+国产日韩欧美| 日韩欧美三区| 亚洲天堂av影院| 一本一本久久| 国产精品一二| 国产综合亚洲精品一区二| 日本综合视频| 日韩国产欧美一区二区| 日韩中文欧美在线| 久久69成人| 合欧美一区二区三区| 久久国产乱子精品免费女| 日韩精品2区| 亚洲tv在线| 日本不良网站在线观看| 少妇精品久久久一区二区 | 国产日韩亚洲| 久久一级电影| 国产精品亚洲人成在99www| 激情婷婷久久| 国产精品伦一区二区| 狠狠干综合网| 精品久久视频| 综合五月婷婷| 日韩欧美中文| 欧美亚洲专区| 亚洲精品一区二区在线看| 欧美激情福利| 午夜在线视频一区二区区别| 国际精品欧美精品|