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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

Python数据分析6——数据规整

發(fā)布時間:2023/12/8 python 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python数据分析6——数据规整 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目錄

索引與分層索引

索引

分層索引

分層索引的切片

數(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為指定分組的列
import pandas as pd import numpy as npdf1 = pd.DataFrame({"names":["菲菲","小可愛","mia","牛哥","老王","mia","狼人","藥水哥","藥水哥"],"classes":["一班","二班","三班"]*3,"grades":np.random.randint(60,100,size=9)} ) df1df1.groupby(by="classes")["grades"].mean()

聚合函數(shù)如下:

自定義聚合函數(shù)

實現(xiàn)步驟:

  • 自定義函數(shù)
  • 分組后通過apply,agg或者aggregate進行聚合
def classes_ptp(x):return x.max()-x.min()df1.groupby(by="classes")["grades"].apply(classes_ptp) df1.groupby(by="classes")["grades"].agg(classes_ptp) df1.groupby(by="classes")["grades"].aggregate(classes_ptp)

數(shù)據(jù)透視表

  • 一種可以對數(shù)據(jù)動態(tài)排布并且分類匯總的表格格式
  • pivot_table() 方法
  • 不常用

總結(jié)

以上是生活随笔為你收集整理的Python数据分析6——数据规整的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。