Python数据分析6——数据规整
目錄
索引與分層索引
索引
分層索引
分層索引的切片
數(shù)據(jù)重塑
數(shù)據(jù)合并
merge()
join()?
concat()
數(shù)據(jù)的分組與聚合
自定義聚合函數(shù)
數(shù)據(jù)透視表
索引與分層索引
索引
- 查看索引:df.index
- 指定索引:df.index = [,] 個數(shù)必須一致
- 重置索引:df.reset_index(drop=True) 無需個數(shù)一致
- 指定某一列作為index:df.set_index("M",drop=False)
- 返回index的唯一值:df.set_index("M").index.unique()
- df.reset_index():將分層索引層級移動到列中
分層索引
分層索引是Pandas一個重要的特性,允許在一個軸上擁有多個所以層級。
分層索引的切片
?
數(shù)據(jù)重塑
數(shù)據(jù)合并
數(shù)據(jù)合并也就是說將多個數(shù)據(jù)集拼接在一起,但是合并的方式主要分為:pandas.merge,pandas.concat,df.join。以下,我們來詳細(xì)的介紹。
merge()
基于列進行關(guān)聯(lián),是最常用的一種方法。函數(shù)為
pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None,left_index=False, right_index=False)- left:拼接左側(cè)的DataFrame對象;
- right:拼接右側(cè)的DataFrame對象;
- on:待關(guān)聯(lián)的同名列名,存在于左右兩個DataFrame對象中;
- how:連接方式,inner(默認(rèn)),其他可選:outer、left、right ;
- left_on:左側(cè)DataFarme中用作連接鍵的列名;
- right_on:右側(cè)DataFarme中用作連接鍵的列;
- left_index:將左側(cè)的行索引用作其連接鍵;
- right_index:將右側(cè)的行索引用作其連接鍵;
join()?
join方法是基于index連接dataframe。join連接方法有內(nèi)連接,外連接,左連接和右連接,與merge一致。
concat()
另外一種常用的數(shù)據(jù)整合方法是concat,即我希望按照某種方式把兩個規(guī)整的數(shù)據(jù)集進行拼接。拼接原型函數(shù)非常簡單:
pd.concat(objs, axis=0, join='outer', keys=None)- objs:帶拼接的數(shù)據(jù)集,通常以列表的形式傳入;
- join:可選inner、outer,含義同merge函數(shù);
- keys:定義新的分組索引,用來區(qū)分傳入的數(shù)據(jù)集;
數(shù)據(jù)的分組與聚合
數(shù)據(jù)包含在Series、DataFrame數(shù)據(jù)結(jié)構(gòu)中,可以根據(jù)一個或多個鍵分離到各個組中。分組操作之后,一個函數(shù)就可以應(yīng)用到各個組中,產(chǎn)生新的值。如下圖則是簡單的分組聚合過程。
- df.groupby('key')? ? ? ? ? ? ? ? ? ? ? ? ? ?key為指定分組的列
聚合函數(shù)如下:
自定義聚合函數(shù)
實現(xiàn)步驟:
- 自定義函數(shù)
- 分組后通過apply,agg或者aggregate進行聚合
數(shù)據(jù)透視表
- 一種可以對數(shù)據(jù)動態(tài)排布并且分類匯總的表格格式
- pivot_table() 方法
- 不常用
總結(jié)
以上是生活随笔為你收集整理的Python数据分析6——数据规整的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 批量读取和写出excel数据#R语言#
- 下一篇: python seo编程_gogo闯SE