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

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

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

瀏覽:168日期: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久久激情| 国产精品.xx视频.xxtv| 精品视频自拍| 久久亚洲道色| 成人在线视频区| 精品久久99| 国产伦久视频在线观看| 中文字幕在线视频网站| 伊人久久视频| 亚洲电影在线| 亚洲欧美不卡| 亚洲欧美网站在线观看| 欧美精品国产| 国模精品一区| 欧美一区二区三区高清视频| 欧美特黄视频| 最新亚洲国产| 91九色综合| 久久精品国产亚洲aⅴ | 久久亚洲风情| 日韩精品免费视频人成| 国产精品一区二区av日韩在线| 老司机精品视频网| 国产在线看片免费视频在线观看| 久久九九精品| 日韩中文字幕一区二区三区| 日韩精品91亚洲二区在线观看| 国产精品亚洲二区| 在线天堂中文资源最新版| 亚洲婷婷免费| 亚洲三区欧美一区国产二区| 国产日韩免费| 99久久久久国产精品| 一区二区三区国产在线| 久久国产麻豆精品| 日韩成人三级| 蜜臀精品一区二区三区在线观看| 欧美日韩一区二区三区四区在线观看 | 国产精品theporn| 超级白嫩亚洲国产第一| 国产精品腿扒开做爽爽爽挤奶网站| **爰片久久毛片| 久久国产主播| 亚洲精品影视| 日本蜜桃在线观看视频| 日韩中文字幕不卡| 精品在线网站观看| 99国产精品99久久久久久粉嫩| 911亚洲精品| 欧美日韩免费观看视频| 一区二区三区四区在线观看国产日韩| 国产精品天堂蜜av在线播放| 亚洲午夜在线| 美女在线视频一区| 99精品国产一区二区三区| 日韩影片在线观看| 最近高清中文在线字幕在线观看1| 丝袜a∨在线一区二区三区不卡| 国产精品自拍区| 国产一区久久| 国产精品伦一区二区| 五月综合激情| 麻豆91在线播放| 巨乳诱惑日韩免费av| av在线资源| 日韩精品a在线观看91| 九九精品调教| 国产无遮挡裸体免费久久| 精品欧美激情在线观看| 久久精品三级| 日韩高清二区| 黄色欧美日韩| 福利一区和二区| 国产日产精品一区二区三区四区的观看方式| 蜜臀久久99精品久久一区二区| 鲁大师精品99久久久| 亚洲精品视频一二三区| 99精品国产一区二区三区| 欧美激情aⅴ一区二区三区| 亚洲一区二区日韩| 亚洲a在线视频| 麻豆成人av在线| 日韩av不卡在线观看| 国产色综合网| 久久美女性网| 麻豆mv在线观看| 久久99精品久久久野外观看| 亚洲精品无播放器在线播放| 亚洲午夜精品久久久久久app| 岛国精品一区| 国产精品久久免费视频| 亚洲精品影院在线观看| 99在线观看免费视频精品观看| 热三久草你在线| 久久精品亚洲| 国产伦精品一区二区三区千人斩| 噜噜噜躁狠狠躁狠狠精品视频| 精品欧美一区二区三区在线观看| 国产精品久久久免费| 日韩精品一区二区三区中文| 水蜜桃久久夜色精品一区的特点| 欧美.日韩.国产.一区.二区| 亚洲精品**中文毛片| 国产一区调教| 毛片不卡一区二区| 国产精品丝袜在线播放| 日本不卡一二三区黄网| 蜜臀国产一区二区三区在线播放 | 视频在线在亚洲| 欧美成人久久| 久久精品欧美一区| 日韩精品首页| 久久精选视频| 亚洲一级二级| 极品裸体白嫩激情啪啪国产精品| 深夜视频一区二区| 波多野结衣久久精品| 成人一区而且| 丰满少妇一区| 国产精品毛片久久| 91亚洲国产| 日韩成人亚洲| 五月天久久网站| 亚洲激情中文| 亚洲欧美日本日韩| 99国产精品视频免费观看一公开 | 亚洲午夜久久| 少妇精品久久久| 日韩国产欧美视频| 国产精品亚洲欧美日韩一区在线| 国产毛片精品| 动漫av一区| 亚洲伦乱视频| 久久麻豆精品| 国产亚洲毛片| 亚洲精选成人| 日韩一区中文| 国产欧美91| 国产精品大片| 亚洲精品88| 国产亚洲精品自拍| 日韩激情av在线| 麻豆精品新av中文字幕| 日韩在线中文| 亚洲作爱视频| 日本亚洲不卡| 麻豆国产91在线播放| 亚洲女同av| 日韩一级欧洲| 久久精品99国产国产精| 福利一区在线| 91成人精品| 亚洲一级淫片| 久久精品国内一区二区三区| 久久久久国产精品一区二区| 久久国产精品亚洲77777| 91精品麻豆| 福利一区在线| 久久大逼视频| 国产激情综合| 久久婷婷激情| 午夜精品影视国产一区在线麻豆| 国产精品宾馆| 亚洲高清av| 青青青国产精品| 日韩欧美午夜| 亚洲精品日本| 精品国产亚洲一区二区三区在线| 久久免费黄色| 日本不卡一区二区| 国产网站在线| 在线观看一区| 精品72久久久久中文字幕| 九九综合在线| 国产日韩欧美高清免费| 精品欧美一区二区三区在线观看| 视频一区欧美精品| 精品一区不卡| 欧美专区在线| 色婷婷综合网| 爽爽淫人综合网网站| 国产一区调教| 夜夜嗨网站十八久久| 国产精品欧美三级在线观看| 国产一区久久| 国产精品啊v在线| 亚洲精品123区| 免费在线日韩av| 红桃视频国产精品| 精品国产精品久久一区免费式 | 国产一区二区三区国产精品| 亚洲美洲欧洲综合国产一区| 国产欧美日韩精品高清二区综合区| 欧美日韩免费观看视频| 日韩精品视频中文字幕| 99精品小视频| 欧美激情一区| 亚洲精品在线a| 激情欧美一区| 精品久久电影|