千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

【熱點話題】 零基礎學IT IT學習教程 IT學習筆記 IT技術干貨 IT培訓機構 IT應聘面試 IT職場就業 Java培訓機構哪些好
當前位置:首頁  >  關于學院  >  技術干貨  > padndas提供了豐富的統計、合并、分組、缺失值等操作函數

padndas提供了豐富的統計、合并、分組、缺失值等操作函數

來源:千鋒教育
發布人:qyf
時間: 2022-08-12 17:14:01 1660295641

  排序

  排序:即對里面的數據按照大小,或者按照某種規則排序。

  對DataFrame數據進行排序與Series相似,Dataframe也有按sort_values()與 sort_index()分別按照值、索引進行排序。

  參數by=“columns_name”指定排序值參考列,默認ascending=True按升序排序,指定inplace=True,將同時修改原數據??蓚魅隺xis=1,按行標簽排序,不過用到的時候不多。

  以近期粽子銷售數據為例介紹sort_values()的使用,數據結構如下:

屏幕快照 2021-06-17 下午3.54.49

  比如我們按照價格進行排序,注意默認是升序:

  import pandas as pd

  import numpy as np

  # 按照發貨地分組

  df = pd.read_csv('zongzi.csv')

  df1 = df.sort_values(by='價格')

  df1.head()

  結果:

屏幕快照 2021-06-17 下午5.58.00

  如果按照降序排列,則需要添加參數ascending=False

  df1 = df.sort_values(by='價格',ascending=False)df1.head()

  結果:

屏幕快照 2021-06-17 下午6.00.26

  統計函數

  padndas提供了豐富的統計、合并、分組、缺失值等操作函數。

  比如靈活高效的groupby功能,它使你能以一種自然的方式對數據集進行切片、切塊、摘要等操作。而如果使用groupby函數則肯定與下面的統計函數息息相關。

  常用的統計函數有:

  df.count() 非空元素計算

  df.min() 最小值

  df.max() 最大值

  df.idxmin() 最小值的位置,類似于R中的which.min函數

  df.idxmax() 最大值的位置,類似于R中的which.max函數

  df.quantile(0.1) 10%分位數

  df.sum() 求和

  df.mean() 均值

  df.median() 中位數

  df.mode() 眾數

  df.var() 方差

  df.std() 標準差

  df.mad() 平均絕對偏差

  df.skew() 偏度

  df.kurt() 峰度

  df.describe() 一次性輸出多個描述性統計指標

  groupby使用介紹

  分組運算"split-apply-combine"(拆分-應?-合并)。第?個階段,pandas對象(?論是Series、DataFrame還是其他的)中的數據會根據你所提供的?個或多個鍵被拆分(split)為多組。拆分操作是在對象的特定軸上執?的。例如,DataFrame可以在其?(axis=0)或列(axis=1)上進?分組。然后,將?個函數應?(apply)到各個分組并產??個新值。最后,所有這些函數的執?結果會被合并(combine)到最終的結果對象中。

屏幕快照 2021-06-17 下午5.36.47

  groupby的語法結構如下:

  * by 分組的行或者列

  * axis=0 行 / 1 列

  * 如果有多層索引可以使用level

  以近期粽子銷售數據為例介紹groupby的使用:

  數據結構如下

屏幕快照 2021-06-17 下午3.54.49

  groupby對象的屬性和內容獲取

  import pandas as pd

  import numpy as np

  # 按照發貨地分組

  df = pd.read_csv('zongzi.csv')

  grouped = df.groupby('發貨地')

  print(grouped)

  打印結果:

  <pandas.core.groupby.generic.dataframegroupby 0x11a97a950="" at="" object="">

  查看grouped的組成groups

  grouped.groups

屏幕快照 2021-06-17 下午3.55.26

  當然大家也可以對grouped進行遍歷查看結果:

  for group in grouped: print(group)

屏幕快照 2021-06-17 下午5.41.31

  這么多分組,我們可以選擇一個分組進行查看:

  grouped.get_group('上海')

屏幕快照 2021-06-17 下午3.55.41

  按照某一列分組并進行統計

  # 結合統計函數count(),進行發貨地的個數統計

  import pandas as pd

  import numpy as np

  # 按照產地分組并統計個數

  df = pd.read_csv('zongzi.csv')

  grouped = df.groupby('發貨地')

  grouped['發貨地'].count().sort_values(ascending=False) # 統計各個發貨地的個數并降序排列

  結果:

屏幕快照 2021-06-17 下午3.59.36

  當然也可以獲取各個店鋪商品的數量(注意如果是各個店鋪則是按照店鋪分組,然后再對商品名稱進行個數統計)

  df['商品名稱'].groupby(df['店鋪']).count().sort_values(ascending=False)

  結果:

屏幕快照 2021-06-17 下午4.04.37

  各個店鋪的銷量總和,銷量列是字符串列

  df.info()

屏幕快照 2021-06-17 下午4.08.04

  所以在進行求和之前我們要進行轉換,只提取銷量的數字變成整型類型的

  import pandas as pd

  import numpy as np

  import re

  df = pd.read_csv('zongzi.csv')

  # 清洗缺失值的數據,進行填充

  df['銷量'].fillna('0人付款', inplace=True)

  def convert_sale(row):

  if '+' in row['銷量']:

  row['銷量'] = row['銷量'].replace('+', '')

  print(row)

  if '萬' in row['銷量']:

  return float(re.search(r'(.+)萬人付款', row['銷量']).group(1)) * 10000

  else:

  return int(re.search(r'(.+)人付款', row['銷量']).group(1))

  df['銷量1'] = df.apply(convert_sale, axis=1)

  然后計算總和:

  df['銷量1'].groupby(df['店鋪']).sum().sort_values(ascending=False)

  按照多列分組,比如每個發貨地的各個店鋪的銷量總和

  df.groupby(['發貨地','店鋪'])['銷量1'].sum().sort_values(ascending=False)

  獲取分組后的某一部分數據可以使用如下格式:

  grouped = df.groupby(by=['O', 'N'])

  grouped.count()['M']

  或

  grouped['M'].count()

  所以運行后的結果:

屏幕快照 2021-06-17 下午5.47.59

  當然還有一些復雜的使用,下篇文章給大家詳細介紹。

  更多關于“Python培訓”的問題,歡迎咨詢千鋒教育在線強師。千鋒教育多年辦學,課程大綱緊跟企業需求,更科學更嚴謹,每年培養泛IT人才近2萬人。不論你是零基礎還是想提升,都可以找到適合的班型,千鋒教育隨時歡迎你來試聽。

聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。

10年以上業內強師集結,手把手帶你蛻變精英

請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通

免費領取

今日已有369人領取成功

劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取

猜你喜歡LIKE

最新文章NEW

相關推薦HOT

更多>>

快速通道 更多>>

開班信息
北京校區
  • 北京校區
  • 大連校區
  • 廣州校區
  • 成都校區
  • 杭州校區
  • 長沙校區
  • 合肥校區
  • 南京校區
  • 上海校區
  • 深圳校區
  • 武漢校區
  • 鄭州校區
  • 西安校區
  • 青島校區
  • 重慶校區
  • 太原校區
  • 沈陽校區

yy111111少妇影院里无码,国产区图片区小说区亚洲区,日韩av无码精品色午夜,
<蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>