pandas用均值填充nan_Pandas学习笔记(三)
生活随笔
收集整理的這篇文章主要介紹了
pandas用均值填充nan_Pandas学习笔记(三)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前言學習Pandas的最好方式就是多用它,只有在實際中多用,才能更好地掌握其中的技巧,這一次我們從數據的聚合來開始。
GroupBy的使用
聚合的意思指的是對數據框架中某一類型的數據進行整合,在整合后可以對其進行求和、求平均值等操作,下面舉例說明:對上面創建的數據框架按公司進行分類,求各公司的人均銷售額:再來統計一下各公司出現的次數:請注意,在用count統計的時候,groupby是按哪列分組,則統計的就是哪列中不同類別的個數。在Pandas中,有一個函數.describe(),它通常用來給出一個數據框架的縱覽,比如:上述的輸出結果中,有各公司出現的次數、銷售額的均值、均方差、最小最大值等等,如果覺得這樣的排列看起來不好看,還可以將其轉置:或者只看一個公司的縱覽:數據框架的級聯(concatenation)
為了說明數據集的級聯,我們考慮這樣一種情況,某公司派出一些數據采集人員對某個地區的某些產品進行滿意度調查,比如調查A、B、C、D四種產品,分別得到的數據如下:現需要將這些數據合在一起進行分析,這種情況下就要用到數據集的級聯概念。在Pandas中,用.concat()來完成數據集的級聯:從上述輸出結果來看,整合數據的任務完成了,這種級聯的方案屬于按列級聯,相應地,肯定還有一種按行級聯,此時需要添加參數axis=1:從上述結果來看,當按行級聯時,由于在每個數據框架中,我們為其指定的index都不重合,因此,級聯的結果中,不同框架中缺少數據的部分,都是用NaN來填充,如果還記得上一節中fillnan函數,那么一定記得它也有一個參數axis=1設置為填充行時的情況。也就是說,在DataFrame中,如果一個函數對行列均有效果時,其默認情況都是對列操作的。上述的級聯中,我們之所有產生了那么多缺失值,是由于各數據的index不重合,如果有重合的情況會怎么樣呢?數據的合并(merge)
如果熟悉SQL語言的同學肯定對數據表的合并不陌生,在pandas中,主要是通過pd.merge函數來進行的,它的語法是這樣的:pd.merge(leftdata, rightdata, how='inner', on='Key')上述語法中的leftdata指的是應該顯示在左側的數據框架,rightdata當然是指顯示在右側的數據框架,關于how的方式,我們下來將舉例細說,on當然是指兩個數據集要合并時所具備的關鍵列:我們也可以根據多個關鍵列合并,比如:請注意,觀察上述結果,我們可以發現,leftdata中的key1、key2組合[k0,k0]和[k1,k0]與rightdata中的關鍵列有重合,其中[k1,k0]在rightdata中對應兩組數據,因此,當以inner方式合并時,它們就逐一匹配合并在一起。下面我們來看一下how=outer時的合并方式:當以outer的方式合并時,結果中將包含兩個數據框架對應的關鍵列中所有組合,對沒有該組合對應的框架中的數據,在結果中將以NaN來填充。綜上可知,inner合并,指的是求兩個數據框架對應關鍵列的交集,而outer合并,則是兩個數據框架對應關鍵列的并集。Merge是對兩個數據框架有共同列的進行合并,但在級聯部分的最后,我們還提到如果index有共同部分時該怎樣處置的問題,下面給出該問題的解決方案。聯合(join)
當兩個數據框架中的index有重合部分時,想要合并兩部分數據,則需要用到join方法:上面給出了join的四種聯合方法,inner和outer分別是求index的交集和并集,left是以左數據的index為基準,而right則是以右數據的index為基準。由此推斷,merge的參數how也有同樣的left和right,請同學們測試。小結
本文首先對groupby的分組聚合方式進行了研究,之后對于兩個數據框架的級聯關系進行了探索。從結果來看,級聯事實上分三類,一是用concat進行操作,它可以對多個數據框架進行級聯,二是用merge進行數據合并,它可以對有重合列名的兩部分數據進行合并,三是用join方式,它可以對index有重合的部分進行數據拼接。總結
以上是生活随笔為你收集整理的pandas用均值填充nan_Pandas学习笔记(三)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 每天做体力工作,汗也流的多,怎么还是瘦
- 下一篇: react 版权问题_react使用fe