Python数据分析6——数据规整
目錄
索引與分層索引
索引
分層索引
分層索引的切片
數(shù)據(jù)重塑
數(shù)據(jù)合并
merge()
join()?
concat()
數(shù)據(jù)的分組與聚合
自定義聚合函數(shù)
數(shù)據(jù)透視表
索引與分層索引
索引
- 查看索引:df.index
- 指定索引:df.index = [,] 個(gè)數(shù)必須一致
- 重置索引:df.reset_index(drop=True) 無需個(gè)數(shù)一致
- 指定某一列作為index:df.set_index("M",drop=False)
- 返回index的唯一值:df.set_index("M").index.unique()
- df.reset_index():將分層索引層級(jí)移動(dòng)到列中
分層索引
分層索引是Pandas一個(gè)重要的特性,允許在一個(gè)軸上擁有多個(gè)所以層級(jí)。
分層索引的切片
?
數(shù)據(jù)重塑
數(shù)據(jù)合并
數(shù)據(jù)合并也就是說將多個(gè)數(shù)據(jù)集拼接在一起,但是合并的方式主要分為:pandas.merge,pandas.concat,df.join。以下,我們來詳細(xì)的介紹。
merge()
基于列進(jìn)行關(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對(duì)象;
- right:拼接右側(cè)的DataFrame對(duì)象;
- on:待關(guān)聯(lián)的同名列名,存在于左右兩個(gè)DataFrame對(duì)象中;
- 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,即我希望按照某種方式把兩個(gè)規(guī)整的數(shù)據(jù)集進(jìn)行拼接。拼接原型函數(shù)非常簡(jiǎn)單:
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ù)一個(gè)或多個(gè)鍵分離到各個(gè)組中。分組操作之后,一個(gè)函數(shù)就可以應(yīng)用到各個(gè)組中,產(chǎn)生新的值。如下圖則是簡(jiǎn)單的分組聚合過程。
- df.groupby('key')? ? ? ? ? ? ? ? ? ? ? ? ? ?key為指定分組的列
聚合函數(shù)如下:
自定義聚合函數(shù)
實(shí)現(xiàn)步驟:
- 自定義函數(shù)
- 分組后通過apply,agg或者aggregate進(jìn)行聚合
數(shù)據(jù)透視表
- 一種可以對(duì)數(shù)據(jù)動(dòng)態(tài)排布并且分類匯總的表格格式
- pivot_table() 方法
- 不常用
總結(jié)
以上是生活随笔為你收集整理的Python数据分析6——数据规整的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 批量读取和写出excel数据#R语言#
- 下一篇: 浅谈音视频自动化测试