国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

python數(shù)學(xué)建模之Numpy應(yīng)用介紹與Pandas學(xué)習(xí)

89542767 / 421人閱讀

  小編寫這篇文章的一個主要目的,主要是來給大家去做一個介紹。介紹的內(nèi)容主要是關(guān)于建模知識的一些相關(guān)介紹,包括其Pandas的一些相關(guān)學(xué)習(xí),就具體的操作內(nèi)容,下面就給大家詳細(xì)解答下。


  Numpy學(xué)習(xí)


  1 Numpy介紹與應(yīng)用


  1-1Numpy是什么


  NumPy是一個運(yùn)行速度非常快的數(shù)學(xué)庫,一個開源的的python科學(xué)計(jì)算庫,主要用于數(shù)組、矩陣計(jì)算,包含:


  一個強(qiáng)大的N維數(shù)組對象ndarray廣播功能函數(shù)整合C/C++/Fortran代碼的工具線性代數(shù)、傅里葉變換、隨機(jī)數(shù)生成等功能1-2為什么選擇Numpy


  對于同樣的數(shù)值計(jì)算任務(wù),使用Numpy比直接編寫原生python代碼的優(yōu)點(diǎn)有:


  代碼更簡潔:


  Numpy直接以數(shù)組、矩陣為粒度計(jì)算并且支撐大量的數(shù)學(xué)函數(shù),而Python需要用for循環(huán)從底層實(shí)現(xiàn)


  性能更高效:


  Numpy的數(shù)組存儲效率和輸入輸出計(jì)算性能,比Python使用List或者嵌套List好很多


  注意:Numpy的數(shù)據(jù)存儲和Python原生的List是不一樣的


  加上Numpy的大部分代碼都是C語言實(shí)現(xiàn)的,這是Numpy比純Python代碼高效的原因


  相關(guān)學(xué)習(xí)、代碼如下:須提前安裝好Numpy、pandas和matplotlib


  Numpy終端安裝命令:pip install numpy


  Pandas終端安裝命令:pip install pandas


  Matplotlib終端安裝過命令:pip install matplotlib

01.png

  #Software:PyCharm
  #Numpy是Python各種數(shù)據(jù)科學(xué)類庫的基礎(chǔ)庫
  #比如:Pandas,Scipy,Scikit_Learn等
  #Numpy應(yīng)用:
  '''
  NumPy通常與SciPy(Scientific Python)和Matplotlib(繪圖庫)一起使用,這種組合廣泛用于替代MatLab,是一個強(qiáng)大的科學(xué)計(jì)算環(huán)境,有助于我們通過Python學(xué)習(xí)數(shù)據(jù)科學(xué)或者機(jī)器學(xué)習(xí)。
  SciPy是一個開源的Python算法庫和數(shù)學(xué)工具包。
  SciPy包含的模塊有最優(yōu)化、線性代數(shù)、積分、插值、特殊函數(shù)、快速傅里葉變換、信號處理和圖像處理、常微分方程求解和其他科學(xué)與工程中常用的計(jì)算。
  Matplotlib是Python編程語言及其數(shù)值數(shù)學(xué)擴(kuò)展包NumPy的可視化操作界面。它為利用通用的圖形用戶界面工具包,如Tkinter,wxPython,Qt或GTK+向應(yīng)用程序嵌入式繪圖提供了應(yīng)用程序接口(API)。
  '''
  #安裝NumPy最簡單的方法就是使用pip工具:
  #pip3 install--user numpy scipy matplotlib
  #--user選項(xiàng)可以設(shè)置只安裝在當(dāng)前的用戶下,而不是寫入到系統(tǒng)目錄。
  #默認(rèn)情況使用國外線路,國外太慢,我們使用清華的鏡像就可以:
  #pip install numpy scipy matplotlib-i.csv https://pypi.tuna.tsinghua.edu.cn/simple
  #這種pip安裝是一種最簡單、最輕量級的方法,當(dāng)然,這里的前提是有Python包管理器
  #如若不行,可以安裝Anaconda【目前應(yīng)用較廣泛】,這是一個開源的Python發(fā)行版
  #安裝Anaconda地址:https://www.anaconda.com/
  #安裝驗(yàn)證
  #測試是否安裝成功
  from numpy import*#導(dǎo)入numpy庫
  print(eye(4))#生成對角矩陣
  #查看版本:
  import numpy as np
  print(np.__version__)
  #實(shí)現(xiàn)2個數(shù)組的加法:
  #1-原生Python實(shí)現(xiàn)
  def Py_sum(n):
  a=[i**2 for i in range(n)]
  b=[i**3 for i in range(n)]
  #創(chuàng)建一個空列表,便于后續(xù)存儲
  ab_sum=[]
  for i in range(n):
  #將a、b中對應(yīng)的元素相加
  ab_sum.append(a<i>+b<i>)
  return ab_sum
  #調(diào)用實(shí)現(xiàn)函數(shù)
  print(Py_sum(10))
  #2-Numpy實(shí)現(xiàn):
  def np_sum(n):
  c=np.arange(n)**2
  d=np.arange(n)**3
  return c+d
  print(np_sum(10))
  #易看出使用Numpy代碼簡潔且運(yùn)行效率快
  #測試1000,10W,以及100W的運(yùn)行時間
  #做繪圖對比:
  import pandas as pd
  #輸入數(shù)據(jù)
  py_times=[1.72*1000,202*1000,1.92*1000]
  np_times=[18.8,14.9*1000,17.8*10000]
  #創(chuàng)建Pandas的DataFrame類型數(shù)據(jù)
  ch_lxw=pd.DataFrame({
  'py_times':py_times,
  'np_times':np_times#可加逗號
  })
  print(ch_lxw)
  import matplotlib.pyplot as plt
  #線性圖
  print(ch_lxw.plot())
  #柱狀圖
  print(ch_lxw.plot.bar())
  #簡易箱線圖
  print(ch_lxw.boxplot)
  plt.show()


  線性圖運(yùn)行效果如下:

02.png

  柱狀圖運(yùn)行效果如下:

03.png

  2 NumPy Ndarray對象


  NumPy最重要的一個特點(diǎn)是其N維數(shù)組對象ndarray,它是一系列同類型數(shù)據(jù)的集合,以0下標(biāo)為開始進(jìn)行集合中元素的索引。


  ndarray對象是用于存放同類型元素的多維數(shù)組,其中的每個元素在內(nèi)存中都有相同存儲大小的區(qū)域。ndarray對象采用了數(shù)組的索引機(jī)制,將數(shù)組中的每個元素映射到內(nèi)存塊上,并且按照一定的布局對內(nèi)存塊進(jìn)行排序(行或列)


  ndarray內(nèi)部由以下內(nèi)容組成:


  一個指向數(shù)據(jù)(內(nèi)存或內(nèi)存映射文件中的一塊數(shù)據(jù))的指針;


  數(shù)據(jù)類型或dtype,描述在數(shù)組中的固定大小值的格子;


  一個表示數(shù)組形狀(shape)的元組,表示各維度大小的元組;


  一個跨度元組(stride),其中的整數(shù)指的是為了前進(jìn)到當(dāng)前維度下一個元素需要"跨過"的字節(jié)數(shù)。


  相關(guān)學(xué)習(xí)、代碼如下:


  '''
  創(chuàng)建一個ndarray只需調(diào)用NumPy的array函數(shù)即可:
  numpy.array(object,dtype=None,copy=True,order=None,subok=False,ndmin=0)
  參數(shù)說明:
  名稱描述
  object表示數(shù)組或嵌套的數(shù)列
  dtype表示數(shù)組元素的數(shù)據(jù)類型,可選
  copy表示對象是否需要復(fù)制,可選
  order創(chuàng)建數(shù)組的樣式,C為行方向,F(xiàn)為列方向,A為任意方向(默認(rèn))
  subok默認(rèn)返回一個與基類類型一致的數(shù)組
  ndmin指定生成數(shù)組的最小維度
  '''
  #ndarray對象由計(jì)算機(jī)內(nèi)存的連續(xù)一維部分組成,并結(jié)合索引模式,將每個元素映射到內(nèi)存塊中的一個位置。
  #內(nèi)存塊以行順序(C樣式)或列順序(FORTRAN或MatLab風(fēng)格,即前述的F樣式)來保存元素
  #學(xué)好Numpy,便于后期對Pandas的數(shù)據(jù)處理
  #1:一維
  import numpy as np
  lxw=np.array([5,2,0])
  print(lxw)
  print()
  #2:多于一個維度
  import numpy as np
  lxw2=np.array([[1,5,9],[5,2,0]])
  print(lxw2)
  print()
  #3:最小維度
  import numpy as np
  lxw3=np.array([5,2,0,1,3,1,4],ndmin=2)#ndmin:指定生成數(shù)組的最小維度
  print(lxw3)
  print()
  #4:dtype參數(shù)
  import numpy as np
  lxw4=np.array([3,3,4,4],dtype=complex)#dtype:數(shù)組元素的數(shù)據(jù)類型[complex復(fù)數(shù)】
  print(lxw4)

  

       3 Numpy數(shù)據(jù)類型


  numpy支持的數(shù)據(jù)類型比Python內(nèi)置的類型要多很多,基本上可以和C語言的數(shù)據(jù)類型對應(yīng)上,其中部分類型對應(yīng)為Python內(nèi)置的類型.


  常用NumPy基本類型:


  名稱描述


  bool_:【布爾型數(shù)據(jù)類型(True或者False)】


  int_:【默認(rèn)的整數(shù)類型(類似于C語言中的long,int32或int64)】


  intc:【與C的int類型一樣,一般是int32或int 64】


  intp:【用于索引的整數(shù)類型(類似于C的ssize_t,一般情況下仍然是int32或int64)】


  int8:【字節(jié)(-128 to 127)】


  int16:【整數(shù)(-32768 to 32767)】


  int32:【整數(shù)(-2147483648 to 2147483647)】


  int64:【整數(shù)(-9223372036854775808 to 9223372036854775807)】


  uint8:【無符號整數(shù)(0 to 255)】


  uint16:【無符號整數(shù)(0 to 65535)】


  uint32:【無符號整數(shù)(0 to 4294967295)】


  uint64:【無符號整數(shù)(0 to 18446744073709551615)】


  float_ float64:【類型的簡寫】


  float16:【半精度浮點(diǎn)數(shù),包括:1個符號位,5個指數(shù)位,10個尾數(shù)位】


  float32:【單精度浮點(diǎn)數(shù),包括:1個符號位,8個指數(shù)位,23個尾數(shù)位】


  float64:【雙精度浮點(diǎn)數(shù),包括:1個符號位,11個指數(shù)位,52個尾數(shù)位】


  complex_ complex128:【類型的簡寫,即128位復(fù)數(shù)】


  complex64:【復(fù)數(shù),表示雙32位浮點(diǎn)數(shù)(實(shí)數(shù)部分和虛數(shù)部分)】


  complex128:【復(fù)數(shù),表示雙64位浮點(diǎn)數(shù)(實(shí)數(shù)部分和虛數(shù)部分)】


  相關(guān)學(xué)習(xí)、代碼如下:


  '''
  #numpy的數(shù)值類型實(shí)際上是dtype對象的實(shí)例,并對應(yīng)唯一的字符,包括np.bool_,np.int32,np.float32,等等。
  '''
  #Numpy類型對象:
  '''
  dtype對象是使用以下語法構(gòu)造的:
  numpy.dtype(object,align,copy)
  object-要轉(zhuǎn)換為的數(shù)據(jù)類型對象
  align-如果為true,填充字段使其類似C的結(jié)構(gòu)體。
  copy-復(fù)制dtype對象,如果為false,則是對內(nèi)置數(shù)據(jù)類型對象的引用
  '''
  #1:使用標(biāo)量類型
  import numpy as np
  lxw=np.dtype(np.int32)
  print(lxw)
  print()
  #2:int8,int16,int32,int64四種數(shù)據(jù)類型可以使用字符串'i1','i2','i4','i8'代替
  import numpy as np
  lxw2=np.dtype('i8')#int64
  print(lxw2)
  print()
  #3:字節(jié)順序標(biāo)注
  import numpy as np
  lxw3=np.dtype('<i4')#int32
  print(lxw3)
  print()
  #4:首先創(chuàng)建結(jié)構(gòu)化數(shù)據(jù)類型
  import numpy as np
  lxw4=np.dtype([('age',np.int8)])#i1
  print(lxw4)
  print()
  #5:將數(shù)據(jù)類型應(yīng)用于ndarray對象
  import numpy as np
  lxw5=np.dtype([('age',np.int32)])
  a=np.array([(10,),(20,),(30,)],dtype=lxw5)
  print(a)
  print()
  #6:類型字段名可以用于存取實(shí)際的age列
  import numpy as np
  lxw6=np.dtype([('age',np.int64)])
  a=np.array([(10,),(20,),(30,)],dtype=lxw6)
  print(a['age'])
  print()
  #7:定義一個結(jié)構(gòu)化數(shù)據(jù)類型student,包含字符串字段name,整數(shù)字段age,及浮點(diǎn)字段marks,并將這個dtype應(yīng)用到ndarray對象
  import numpy as np
  student=np.dtype([('name','S20'),('age','i2'),('marks','f4')])
  print(student)#運(yùn)行結(jié)果:[('name','S20'),('age','<i2'),('marks','<f4')]
  print()
  #8:
  import numpy as np
  student2=np.dtype([('name','S20'),('age','i1'),('marks','f4')])
  lxw=np.array([('lxw',21,52),('cw',22,58)],dtype=student2)
  print(lxw)#運(yùn)行結(jié)果:[(b'lxw',21,52.)(b'cw',22,58.)]
  #每個內(nèi)建類型都有一個唯一定義它的字符代碼,如下:
  '''
  字符對應(yīng)類型
  b布爾型
  i.csv(有符號)整型
  u無符號整型integer
  f浮點(diǎn)型
  c復(fù)數(shù)浮點(diǎn)型
  m timedelta(時間間隔)
  M datetime(日期時間)
  O(Python)對象
  S,a(byte-)字符串
  U Unicode
  V原始數(shù)據(jù)(void)
  '''


  4 Numpy數(shù)組屬性


  在NumPy中,每一個線性的數(shù)組稱為是一個軸(axis),也就是維度(dimensions)。


  比如說,二維數(shù)組相當(dāng)于是兩個一維數(shù)組,其中第一個一維數(shù)組中每個元素又是一個一維數(shù)組。


  相關(guān)代碼學(xué)習(xí)、如下:


  #NumPy的數(shù)組中比較重要ndarray對象屬性有:
  '''
  屬性說明
  ndarray.ndim秩,即軸的數(shù)量或維度的數(shù)量
  ndarray.shape數(shù)組的維度,對于矩陣,n行m列
  ndarray.size數(shù)組元素的總個數(shù),相當(dāng)于.shape中n*m的值
  ndarray.dtype ndarray對象的元素類型
  ndarray.itemsize ndarray對象中每個元素的大小,以字節(jié)為單位
  ndarray.flags ndarray對象的內(nèi)存信息
  ndarray.real ndarray元素的實(shí)部
  ndarray.imag ndarray元素的虛部
  ndarray.data包含實(shí)際數(shù)組元素的緩沖區(qū),由于一般通過數(shù)組的索引獲取元素,所以通常不需要使用這個屬性。
  '''
  #ndarray.ndim
  #ndarray.ndim用于返回?cái)?shù)組的維數(shù),等于秩。
  import numpy as np
  lxw=np.arange(36)
  print(lxw.ndim)#a現(xiàn)只有一個維度
  #現(xiàn)調(diào)整其大小
  a=lxw.reshape(2,6,3)#現(xiàn)在擁有三個維度
  print(a.ndim)
  print()
  #ndarray.shape
  #ndarray.shape表示數(shù)組的維度,返回一個元組,這個元組的長度就是維度的數(shù)目,即ndim屬性(秩)。比如,一個二維數(shù)組,其維度表示"行數(shù)"和"列數(shù)"。
  #ndarray.shape也可以用于調(diào)整數(shù)組大小。
  import numpy as np
  lxw2=np.array([[169,175,165],[52,55,50]])
  print(lxw2.shape)#shape:數(shù)組的維度
  print()
  #調(diào)整數(shù)組大小:
  import numpy as np
  lxw3=np.array([[123,234,345],[456,567,789]])
  lxw3.shape=(3,2)
  print(lxw3)
  print()
  #NumPy也提供了reshape函數(shù)來調(diào)整數(shù)組大小:
  import numpy as np
  lxw4=np.array([[23,543,65],[32,54,76]])
  c=lxw4.reshape(2,3)#reshape:調(diào)整數(shù)組大小
  print(c)
  print()
  #ndarray.itemsize
  #ndarray.itemsize以字節(jié)的形式返回?cái)?shù)組中每一個元素的大小。
  #例如,一個元素類型為float64的數(shù)組itemsize屬性值為8(float64占用64個bits,
  #每個字節(jié)長度為8,所以64/8,占用8個字節(jié)),又如,一個元素類型為complex32的數(shù)組item屬性為4(32/8)
  import numpy as np
  #數(shù)組的dtype為int8(一個字節(jié))
  x=np.array([1,2,3,4,5],dtype=np.int8)
  print(x.itemsize)
  #數(shù)組的dtypy現(xiàn)在為float64(八個字節(jié))
  y=np.array([1,2,3,4,5],dtype=np.float64)
  print(y.itemsize)#itemsize:占用字節(jié)個數(shù)
  #拓展:
  #整體轉(zhuǎn)化為整數(shù)型
  print(np.array([3.5,6.6,8.9],dtype=int))
  #設(shè)置copy參數(shù),默認(rèn)為True
  a=np.array([2,5,6,8,9])
  b=np.array(a)#復(fù)制a
  print(b)#控制臺打印b
  print(f'a:{id(a)},b:{id(b)}')#可打印出a和b的內(nèi)存地址
  print('='*20)
  #類似于列表的引用賦值
  b=a
  print(f'a:{id(a)},b:{id(b)}')
  #創(chuàng)建一個矩陣
  lxw5=np.mat([1,2,3,4,5])
  print(type(lxw5))#矩陣類型:<class'numpy.matrix'>
  #復(fù)制出副本,并保持原類型
  yy=np.array(lxw5,subok=True)
  print(type(yy))
  #只復(fù)制副本,不管其類型
  by=np.array(lxw5,subok=False)#False:使用數(shù)組的數(shù)據(jù)類型
  print(type(by))
  print(id(yy),id(by))
  print('='*20)
  #使用數(shù)組的copy()方法:
  c=np.array([2,5,6,2])
  cp=c.copy()
  print(id(c),id(cp))
  print()
  #ndarray.flags
  '''
  ndarray.flags返回ndarray對象的內(nèi)存信息,包含以下屬性:
  屬性描述
  C_CONTIGUOUS(C)數(shù)據(jù)是在一個單一的C風(fēng)格的連續(xù)段中
  F_CONTIGUOUS(F)數(shù)據(jù)是在一個單一的Fortran風(fēng)格的連續(xù)段中
  OWNDATA(O)數(shù)組擁有它所使用的內(nèi)存或從另一個對象中借用它
  WRITEABLE(W)數(shù)據(jù)區(qū)域可以被寫入,將該值設(shè)置為False,則數(shù)據(jù)為只讀
  ALIGNED(A)數(shù)據(jù)和所有元素都適當(dāng)?shù)貙R到硬件上
  UPDATEIFCOPY(U)這個數(shù)組是其它數(shù)組的一個副本,當(dāng)這個數(shù)組被釋放時,原數(shù)組的內(nèi)容將被更新
  '''
  import numpy as np
  lxw4=np.array([1,3,5,6,7])
  print(lxw4.flags)#flags:其內(nèi)存信息

  Pandas學(xué)習(xí)


  當(dāng)然,做這些的前提是首先把文件準(zhǔn)備好


  文件準(zhǔn)備:


  文件太長,故只截取了部分,當(dāng)然,此文件可自行弄類似的也可以!

05.png

  1 pandas新增數(shù)據(jù)列


  在進(jìn)行數(shù)據(jù)分析時,經(jīng)常需要按照一定條件創(chuàng)造新的數(shù)據(jù)列,然后再進(jìn)一步分析


  直接賦值


  df.apply()方法
  df.assign()方法
  按條件進(jìn)行分組分別賦值
  #1:
  import pandas as pd
  #讀取數(shù)據(jù)
  lxw=pd.read_csv('sites.csv')
  #print(lxw.head())
  df=pd.DataFrame(lxw)
  #print(df)
  df['lrl']=df['lrl'].map(lambda x:x.rstrip('%'))
  #print(df)
  df.loc[:,'jf']=df['yye']-df['sku_cost_prc']
  #返回的是Series
  #print(df.head())
  #2:
  def get_cha(n):
  if n['yye']>5:
  return'高價'
  elif n['yye']<2:
  return'低價'
  else:
  return'正常價'
  df.loc[:,'yye_type']=df.apply(get_cha,axis=1)
  #print(df.head())
  print(df['yye_type'].value_counts())
  #3:
  #可同時添加多個新列
  print(df.assign(
  yye_bh=lambda x:x['yye']*2-3,
  sl_zj=lambda x:x['sku_cnt']*6
  ).head(10))
  #4:
  #按條件先選擇數(shù)據(jù),然后對這部分?jǐn)?shù)據(jù)賦值新列
  #先創(chuàng)建空列
  df['zyye_type']=''
  df.loc[df['yye']-df['sku_cnt']>8,'zyye_type']='高'
  df.loc[df['yye']-df['sku_cnt']<=8,'zyye_type']='低'
  print(df.head())

  下面分別是每個小問對應(yīng)運(yùn)行效果:

05.png

06.png

07.png

08.png

  2 Pandas數(shù)據(jù)統(tǒng)計(jì)函數(shù)


  #Pandas數(shù)據(jù)統(tǒng)計(jì)函數(shù)
  '''
  1-匯總類統(tǒng)計(jì)
  2-唯一去重和按值計(jì)數(shù)
  3-相關(guān)系數(shù)和協(xié)方差
  '''
  import pandas as pd
  lxw=pd.read_csv('nba.csv')
  #print(lxw.head(3))
  #1:
  #一下子提取所有數(shù)字列統(tǒng)計(jì)結(jié)果
  print(lxw.describe())
  #查看單個Series的數(shù)據(jù)
  print(lxw['Age'].mean())
  #年齡最大
  print(lxw['Age'].max())
  #體重最輕
  print(lxw['Weight'].min())
  #2:
  #2-1唯一性去重【一般不用于數(shù)值項(xiàng),而是枚舉、分類項(xiàng)】
  print(lxw['Height'].unique())
  print(lxw['Team'].unique())
  #2-2按值計(jì)算
  print(lxw['Age'].value_counts())
  print(lxw['Team'].value_counts())
  #3:
  #應(yīng)用:股票漲跌、產(chǎn)品銷量波動等等
  '''
  對于兩個變量X、Y:
  1-協(xié)方差:衡量同向程度程度,如果協(xié)方差為正,說明X、Y同向變化,協(xié)方差越大說明同向程度越高;
  如果協(xié)方差為負(fù),說明X、Y反向運(yùn)動,協(xié)方差越小說明方向程度越高。
  2-相關(guān)系數(shù):衡量相似度程度,當(dāng)他們的相關(guān)系數(shù)為1時,說明兩個變量變化時的正向相似度最大,
  當(dāng)相關(guān)系數(shù)為-1,說明兩個變化時的反向相似度最大。
  '''
  #協(xié)方差矩陣:
  print(lxw.cov())
  #相關(guān)系數(shù)矩陣:
  print(lxw.corr())
  #多帶帶查看年齡和體重的相關(guān)系數(shù)
  print(lxw['Age'].corr(lxw['Weight']))
  #Age和Salary的相關(guān)系數(shù)
  print(lxw['Age'].corr(lxw['Salary']))
  #注意看括號內(nèi)的相減
  print(lxw['Age'].corr(lxw['Salary']-lxw['Weight']))

09.png

10.png

11.png

12.png

  3 Pandas對缺失值的處理


  特殊Excel的讀取、清洗、處理:
  #Pandas對缺失值的處理
  '''
  函數(shù)用法:
  1-isnull和notnull:檢測是否有控制,可用于dataframe和series
  2-dropna:丟棄、刪除缺失值
  2-1 axis:刪除行還是列,{0 or'index',1 or'columns'},default()
  2-2 how:如果等于any,則任何值都為空,都刪除;如果等于all所有值都為空,才刪除
  2-3 inplace:如果為True,則修改當(dāng)前dataframe,否則返回新的dataframe
  2-4 value:用于填充的值,可以是單個值,或者字典(key是列名,value是值)
  2-5 method:等于ffill使用前一個不為空的值填充forword fill;等于bfill使用后一個不為空的值填充backword fill
  2-6 axis:按行還是按列填充,{0 or"index",1 or"columns"}
  2-7 inplace:如果為True則修改當(dāng)前dataframe,否則返回新的dataframe
  '''
  #特殊Excel的讀取、清洗、處理
  import pandas as pd
  #1:讀取excel時,忽略前幾個空行
  stu=pd.read_excel("Score表.xlsx",skiprows=14)#skiprows:控制在幾行以下
  print(stu)
  #2:檢測空值
  print(stu.isnull())
  print(stu['成績'].isnull())
  print(stu['成績'].notnull())
  #篩選沒有空成績的所有行
  print(stu.loc[stu['成績'].notnull(),:])
  #3:刪除全是空值的列:
  #axis:刪除行還是列,{0 or'index',1 or'columns'},default()
  #how:如果等于any,則任何值都為空,都刪除;如果等于all所有值都為空,才刪除
  #inplace:如果為True則修改當(dāng)前dataframe,否則返回新的dataframe
  stu.dropna(axis="columns",how="all",inplace=True)
  print(stu)
  #4:刪除全是空值的行:
  stu.dropna(axis="index",how="all",inplace=True)
  print(stu)
  #5:將成績列為空的填充為0分:
  stu.fillna({"成績":0})
  print(stu)
  #同上:
  stu.loc[:,'成績']=stu['成績'].fillna(0)
  print(stu)
  #6:將姓名的缺失值填充【使用前面的有效值填充,用ffill:forward fill】
  stu.loc[:,'姓名']=stu['姓名'].fillna(method='ffill')
  print(stu)
  #7:將清洗好的Excel保存:
  stu.to_excel("Score成績_clean.xlsx",index=False)

  13.png

15.png

16.png

17.png

18.png

19.png

20.png

21.png

22.png

       總結(jié)


  綜上所述,這篇文章就給大家介紹到這里了,希望可以給各位讀者帶來幫助。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/128410.html

相關(guān)文章

  • Python學(xué)數(shù)學(xué)相關(guān)教程、開源包推薦下載

    摘要:在上篇文章里,為大家推薦了一些數(shù)學(xué)學(xué)習(xí)的軟件和微積分線性代數(shù)概率統(tǒng)計(jì)的學(xué)習(xí)視頻,今天再推薦一些精心挑選的經(jīng)典教材,并為大家提供電子書的下載鏈接,和視頻搭配起來一起學(xué)習(xí),效果會更好。我們要使用的以及等都包含在里面,無需額外下載。 在上篇文章里,為大家推薦了一些數(shù)學(xué)學(xué)習(xí)的軟件和微積分、線性代數(shù)、概率統(tǒng)計(jì)的學(xué)習(xí)視頻,今天再推薦一些精心挑選的經(jīng)典教材,并為大家提供電子書的下載鏈接,和視頻搭配起...

    wapeyang 評論0 收藏0
  • python數(shù)學(xué)建模Numpy應(yīng)用介紹Pandas學(xué)習(xí)

      小編寫這篇文章的主要目的,主要是來給大家解答下關(guān)于python數(shù)學(xué)建模的一些相關(guān)的介紹,涉及到內(nèi)容涵蓋Numpy的一些相關(guān)的應(yīng)用具體的一些介紹。另外,還會涉及到相關(guān)的Pandas學(xué)習(xí)知識,具體內(nèi)容下面給大家詳細(xì)解答下。  1 Numpy介紹與應(yīng)用  1-1Numpy是什么  NumPy是一個運(yùn)行速度非常快的數(shù)學(xué)庫,一個開源的的python科學(xué)計(jì)算庫,主要用于數(shù)組、矩陣計(jì)算,包含:  一個強(qiáng)大的...

    89542767 評論0 收藏0
  • 15個Python庫,讓你學(xué)習(xí)數(shù)據(jù)科學(xué)更輕松

    摘要:在本節(jié)中,我們將看到一些最流行和最常用的庫,用于機(jī)器學(xué)習(xí)和深度學(xué)習(xí)是用于數(shù)據(jù)挖掘,分析和機(jī)器學(xué)習(xí)的最流行的庫。愿碼提示網(wǎng)址是一個基于的框架,用于使用多個或進(jìn)行有效的機(jī)器學(xué)習(xí)和深度學(xué)習(xí)。 showImg(https://segmentfault.com/img/remote/1460000018961827?w=999&h=562); 來源 | 愿碼(ChainDesk.CN)內(nèi)容編輯...

    W4n9Hu1 評論0 收藏0
  • 【精華分享】:轉(zhuǎn)行數(shù)據(jù)分析的一份學(xué)習(xí)清單

    摘要:數(shù)據(jù)分析的發(fā)展方向一般有商業(yè)方向,行業(yè)分析業(yè)務(wù)方向,和機(jī)器學(xué)習(xí)數(shù)據(jù)挖掘方向。機(jī)器學(xué)習(xí)的書籍推薦統(tǒng)計(jì)學(xué)習(xí)方法,機(jī)器學(xué)習(xí),機(jī)器學(xué)習(xí)實(shí)戰(zhàn)三本書。 作者:xiaoyu 微信公眾號:Python數(shù)據(jù)科學(xué) 知乎:python數(shù)據(jù)分析師 上一篇主要分享了博主親身轉(zhuǎn)行數(shù)據(jù)分析的經(jīng)歷: 【從零學(xué)起到成功轉(zhuǎn)行數(shù)據(jù)分析,我是怎么做的?】 本篇繼上一篇將分享轉(zhuǎn)行數(shù)據(jù)分析的一些經(jīng)驗(yàn)和學(xué)習(xí)方法,看完這篇你將會解...

    suemi 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<