日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

【Python基础】Pandas三种实现数据透视表的方法

發布時間:2025/3/8 python 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Python基础】Pandas三种实现数据透视表的方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

主要想做的事情用大白話來講就是:一個dataframe里面對于兩個列做分組,最后算一個value對應于這兩個列的分組來算值的矩陣,這個矩陣的行為其中一個列,列也為其中一個列。

新建一個df

import?pandas?as?pd import?numpy?as?np v?=?[1,?2,?3,?3,?3] a?=?pd.DataFrame({'v':?v}) d?=?[2?,?4,?4,?5,?4] a['d']?=?d c?=?['c'?,?'h',?'d',?'e',??'c'] a['c']?=?c

df用兩列進行分組grouby

a.groupby(['v',?'d'])['c'].count()

我的要干的事情 就是把這個v當作列index,d當作行columns,之后把對應的分組的’c‘.count()放到對應的索引loc處,不存在的值用0填補。

最后得到一個以v為index, d為column的df,也可以搞成對應的矩陣matrix

第一種方法:pd.crosstab

cpd?=?pd.crosstab(a['v'],?a['d'],?a['c'],?aggfunc='count') cpd

查看index和columns

我們再來一步就可以得到我們想要的了,把nan填充一下。

cpd?=?cpd.fillna(0) cpd

轉換為array和list的方法

cpd_arr1?=?np.array(cpd) cpd_arr2?=?np.array(cpd.values.tolist()) cpd_arr3?=?cpd.as_matrix() cpd_list?=?cpd.values.tolist()

整體流程

cpd?=?pd.crosstab(a['v'],?a['d'],?a['c'],?aggfunc='count') cpd?=?cpd.fillna(0) cpd_arr?=?np.array(cpd) cpd_arr

總結一句話

np.array(pd.crosstab(a['v'],?a['d'],?a['c'],?aggfunc='count').fillna(0))

第二種方法:pivot()

groupby的as_index=False

a.groupby(['v',?'d'],?as_index=False)['c'].count()

把操作的三列的值恢復到df上,每一個列還是對應的列。

pivot

a.groupby(['v',?'d'],?as_index=False)['c'].count().pivot('v',?'d',?'c')

對應關系如下:

整體流程

ppd?=?a.groupby(['v',?'d'],?as_index=False)['c'].count().pivot('v',?'d',?'c') ppd?=?ppd.fillna(0) ppd_arr?=?np.array(ppd) ppd_arr

總結一句話

np.array(a.groupby(['v',?'d'],?as_index=False)['c'].count().pivot('v',?'d',?'c').fillna(0))

第三種方法:pivot_table

pivoted_df=pd.pivot_table(a[['v','d','c']],?values='c',?index=['v'],columns=['d'],?aggfunc='count') pivoted_df

往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載機器學習的數學基礎專輯獲取一折本站知識星球優惠券,復制鏈接直接打開:https://t.zsxq.com/662nyZF本站qq群1003271085。加入微信群請掃碼進群(如果是博士或者準備讀博士請說明): 與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的【Python基础】Pandas三种实现数据透视表的方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。