1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時(shí)間:8:30-17:00
      你可能遇到了下面的問題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
      esprocvspython2簡(jiǎn)單計(jì)算-創(chuàng)新互聯(lián)

      1.添加Age、Fullname字段

      esproc:

      創(chuàng)新互聯(lián)長(zhǎng)期為上1000家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為商城企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、成都外貿(mào)網(wǎng)站建設(shè)公司商城網(wǎng)站改版等技術(shù)服務(wù)。擁有10余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

      A
      1=now()
      2=file("C:\\Users\\Sean\\Desktop\\esproc_vs_python\\EMPLOYEE.txt")
      3=A2.import@t()
      4=A3.derive(age(BIRTHDAY):Age,NAME+""+SURNAME:Fullname)
      5=interval@ms(A1,now())

      A4:我們用T表示序表。T.derive()表示增加字段。這里用age(日期)計(jì)算出年齡,作為Age字段。用NAME,SURNAME得到Fullname。

      A5:計(jì)算運(yùn)算時(shí)間(interval:計(jì)算時(shí)間間隔。@ms表示以毫秒為單位)

      python:

      import time

      import pandas as pd

      import datetime

      s = time.time()

      data = pd.read_csv("C:/Users/Sean/Desktop/esproc_vs_python/EMPLOYEE.txt",sep="\t")

      today = datetime.datetime.today().year

      data["Age"] = today-pd.to_datetime(data["BIRTHDAY"]).dt.year

      data["Fullname"]=data["NAME"]+data["SURNAME"]

      print(data)

      e = time.time()

      print(e-s)

      計(jì)算出BIETHDAY字段的值(日期)距今天的年數(shù),作為年齡字段。用NAME+SURNAME作為Fullname字段

      結(jié)果

      esproc:

      esproc vs python 2 簡(jiǎn)單計(jì)算

      python:

      esproc vs python 2 簡(jiǎn)單計(jì)算


      耗時(shí)
      esproc0.008
      python0.020

      2.提取需要的記錄或者字段(前3個(gè)字段,第3~10條記錄)

      esproc:


      A
      1=now()
      2=file("C:\\Users\\Sean\\Desktop\\esproc_vs_python\\EMPLOYEE.txt")
      3=A2.import@t()
      4=A3.new(#1,#2,#3).to(3:10)
      5=interval@ms(A1,now())

      A4:T.new()表示新建序表。這里以第1,2,3個(gè)字段作為新表的字段。T.A,表示取出序列中包含的行號(hào)。

      python:

      import time

      import pandas as pd

      import datetime

      s = time.time()

      data = pd.read_csv("C:/Users/Sean/Desktop/esproc_vs_python/EMPLOYEE.txt",sep="\t")

      data = data.iloc[2:10,:3]

      print(data)

      e = time.time()

      print(e-s)

      使用df.iloc[]切片獲得3~10條記錄,前三個(gè)字段(dataframe的字段號(hào)和記錄號(hào)都是從0開始計(jì)數(shù)的)。

      結(jié)果:

      esproc:

      esproc vs python 2 簡(jiǎn)單計(jì)算

      python:

      esproc vs python 2 簡(jiǎn)單計(jì)算


      耗時(shí)
      esproc0.008
      python0.010

      3.篩選符合條件的記錄

      esproc:


      A
      1=now()
      2=file("C:\\Users\\Sean\\Desktop\\esproc_vs_python\\EMPLOYEE.txt")
      3=A2.import@t()
      4=A3.select(STATE=="California")
      5=interval@ms(A1,now())

      A4:T.select()篩選符合條件的記錄。這里是篩選STATE=="California"為真的記錄

      python:

      import time

      import pandas as pd

      import datetime

      s = time.time()

      data = pd.read_csv("C:/Users/Sean/Desktop/esproc_vs_python/EMPLOYEE.txt",sep="\t")

      data = data[data['STATE']=="California"]

      print(data)

      e = time.time()

      print(e-s)

      取出data['STATE']=="California"的記錄

      結(jié)果:

      esproc:

      esproc vs python 2 簡(jiǎn)單計(jì)算

      python:

      esproc vs python 2 簡(jiǎn)單計(jì)算


      耗時(shí)
      esproc0.007
      python0.028

      4.計(jì)算字段的常用值


      A
      1=now()
      2=file("C:\\Users\\Sean\\Desktop\\esproc_vs_python\\EMPLOYEE.txt")
      3=A2.import@t()
      4=A3.min(SALARY)
      5=A3.max(SALARY)
      6=A3.avg(SALARY)
      7=A3.sum(SALARY)
      8=A3.(SALARY).median()
      9=A3.(float(SALARY)).variance()
      10=interval@ms(A1,now())

      A4:T.min()計(jì)算字段最小值

      A5:T.max()計(jì)算字段大值

      A6:T.avg()計(jì)算字段平均值

      A7:T.sum()計(jì)算字段總和

      A8:計(jì)算字段中位數(shù)。A.median(k:n)函數(shù),參數(shù)全省略時(shí),如果序列長(zhǎng)度是奇數(shù)返回中間位置值;如果序列長(zhǎng)度是偶數(shù)返回中間兩個(gè)值的平均值。

      A9:T.variance()計(jì)算字段方差。

      python

      s = time.time()

      data = pd.read_csv("C:/Users/Sean/Desktop/esproc_vs_python/EMPLOYEE.txt",sep="\t")

      min = data["SALARY"].min()

      max = data["SALARY"].max()

      avg = data["SALARY"].mean()

      sum = data["SALARY"].sum()

      median = data["SALARY"].median()

      var = data["SALARY"].var()

      print(min,max,avg,sum,median,var)

      e = time.time()

      print(e-s)

      df[字段名]表示取得字段。min(),max(),mean(),sum(),median(),var()分別計(jì)算最小值,大值,平均數(shù),總和,中位數(shù),方差。

      結(jié)果

      常用計(jì)算esprocpython說明
      最小值30003000
      大值1600016000
      平均值73957395.0
      總和36975003697500
      中位數(shù)7000.07000.0
      方差53244755335145.29總體方差和樣本方差的區(qū)別
      耗時(shí)0.0040.007

      5.統(tǒng)計(jì)各部門員工的男女人數(shù)

      esproc:


      A
      1=now()
      2=file("C:\\Users\\Sean\\Desktop\\esproc_vs_python\\EMPLOYEE.txt")
      3=A2.import@t()
      4=A3.groups(DEPT:Dept;count(GENDER=="M"):Mcount,  count(GENDER=="F"):Fcount)
      5=interval@ms(A1,now())

      A4:T.groups()表示以DEPT分組,計(jì)算GENDER==“M”或GENDER==“F”的值,得到各部門男女員工的數(shù)量。

      python

      s = time.time()

      data = pd.read_csv("C:/Users/Sean/Desktop/esproc_vs_python/EMPLOYEE.txt",sep="\t")

      group = data.groupby(['DEPT','GENDER']).size()

      print(group)

      e = time.time()

      print(e-s)

      截取GENDER==‘M’或者GENDER==‘F’的切片以DEPT通過goupby()函數(shù)得到以DEPT的分組。最后用size()函數(shù)得到結(jié)果。

      結(jié)果:

      esproc:

      esproc vs python 2 簡(jiǎn)單計(jì)算

      python:

      esproc vs python 2 簡(jiǎn)單計(jì)算


      耗時(shí)
      esproc0.004
      python0.008

      6.統(tǒng)計(jì)男女員工的平均年齡

      esproc:


      A
      1=now()
      2=file("C:\\Users\\Sean\\Desktop\\esproc_vs_python\\EMPLOYEE.txt")
      3=A2.import@t()
      4=A3.groups(GENDER;avg(age(BIRTHDAY)):Age)
      5=interval@ms(A1,now())

      A4:T.groups()用來分組,avg()計(jì)算平均值,age()根據(jù)日期計(jì)算時(shí)間間隔。

      python

      s = time.time()

      data = pd.read_csv("C:/Users/Sean/Desktop/esproc_vs_python/EMPLOYEE.txt",sep="\t")

      data["Age"] = today-pd.to_datetime(data["BIRTHDAY"]).dt.year

      avg_age = data.groupby('GENDER')['Age'].mean()

      print(avg_age)

      e = time.time()

      print(e-s)

      計(jì)算得到Age字段。然后用groupby()函數(shù)以GENDER分組,最后通過mean()函數(shù)得到平均值。

      結(jié)果:

      esproc:

      esproc vs python 2 簡(jiǎn)單計(jì)算

      python:

      esproc vs python 2 簡(jiǎn)單計(jì)算


      耗時(shí)
      esproc0.005
      python0.008

      7.計(jì)算員工薪酬比前一名員工高的大人數(shù)

      esproc:


      A
      1=now()
      2=file("C:\\Users\\Sean\\Desktop\\esproc_vs_python\\EMPLOYEE.txt")
      3=A2.import@t()
      4=a=0,A3.max(a=if(SALARY>SALARY[-1],a+1,0))
      5=interval@ms(A1,now())

      A4:if(condition,x1,x2)表示如果條件成立,if語句的值為x1,否則值為x2,在這兒計(jì)算如果SALARY比前一個(gè)員工薪水高的話a=a+1。從而得到A3.(a),其中a隨著if語句不斷的變化。最后得到一個(gè)序列,max()函數(shù)得到大值。

      python

      s = time.time()

      data = pd.read_csv("C:/Users/Sean/Desktop/esproc_vs_python/EMPLOYEE.txt",sep="\t")

      a=0 ; m=0

      for i in data['SALARY'].shift(0)>data['SALARY'].shift(1):

         a=0 if i==False else a+1

         m = a if m < a else m

      print(m)

      e = time.time()

      print(e-s)

      df.shift(0)表示當(dāng)前記錄,df.shift(n)表示前面第n條記錄,data['SALARY'].shift(0)>data['SALARY'].shift(1) 得到pandas的series結(jié)構(gòu)。循環(huán)如果為假(False)表示當(dāng)前記錄小于或等于上一條記錄,把a(bǔ)置0,如果為真則加1。m的作用:當(dāng)m

      結(jié)果:


      大人數(shù)耗時(shí)
      esproc40.005
      python40.008

      8.每個(gè)字段隨機(jī)設(shè)置5-10個(gè)缺失值

      esproc:


      AB
      1=now()                   
      2=file("C:\\Users\\Sean\\Desktop\\esproc_vs_python\\EMPLOYEE_nan.txt")
      3=A2.import@t()
      4for A3.fno()>A3.sort(rand()).to(5+rand(6)).field(A4,null)
      5=interval@ms(A1,now())

      A4:T.fno()得到序表的字段數(shù)量。

      B4:T.field(f,x)將x序列中的成員依次賦值給A中第F個(gè)字段的字段值或者字符串參數(shù)F的值。F<0時(shí)從后往前排。F越界和不存時(shí)不執(zhí)行

      python:

      s = time.time()

      data = pd.read_csv("C:/Users/Sean/Desktop/esproc_vs_python/EMPLOYEE.txt",sep="\t")

      for i in data.columns:

         for j in range(random.randint(5,10)):

             data[i][random.randint(0,500)]=np.nan

      print(data)

      e = time.time()

      print(e-s)

      循環(huán)所有的字段,隨機(jī)循環(huán)5~10次,將字段的某個(gè)隨機(jī)值設(shè)置成np.nan

      結(jié)果:


      耗時(shí)
      esproc0.008
      python0.710

      9.丟棄缺失值

      esproc:


      A
      1=now()
      2=file("C:\\Users\\Sean\\Desktop\\esproc_vs_python\\EMPLOYEE_nan.txt")
      3=A2.import@t()
      4=A3.select(!~.array().pos(null))
      5=interval@ms(A1,now())

      A4:篩選null所在位置為空的記錄,即不包含null的記錄。用r表示記錄,r.array()表示把r中的字段值返回成序列。A.pos()獲得序列成員序號(hào)。

      python:

      s = time.time()

      data = pd.read_csv("C:/Users/Sean/Desktop/esproc_vs_python/EMPLOYEE_nan.txt",sep="\t")

      data = data.dropna()

      print(data)

      e = time.time()

      print(e-s)

      使用dropna()函數(shù)得到不包含np.nan的記錄

      結(jié)果:

      esproc vs python 2 簡(jiǎn)單計(jì)算

      esproc vs python 2 簡(jiǎn)單計(jì)算


      耗時(shí)
      esproc0.003
      python0.033

      10.第一列用序列直接替換,其他列的缺失值使用其中的一個(gè)隨機(jī)值填補(bǔ)

      esproc:


      AB
      1=now()
      2=file("C:\\Users\\Sean\\Desktop\\esproc_vs_python\\EMPLOYEE_nan.txt")
      3=A2.import@t()
      4>A3.field("EID",to(A3.len()))
      5for 2,A3.fno()=A3.select(!~.field(A5)  )
      6
      =A3\B5
      7
      >B5.run(~.field(A5,B6(rand(B6.len())+1).field(A5)))
      8=interval@ms(A1,now())

      A4:T.field(F,A) 將A序列中的成員依次賦值給T中第F個(gè)字段的字段值或者字符串參數(shù)F的值。

      B5:篩選字段為null的記錄

      B6:差集,得到不為null的記錄

      B7:這里需要特別注意一下field()函數(shù),r.field(F)取得記錄的第F個(gè)字段的字段值或者字符串參數(shù)F的值。r.field(F,X) 修改記錄r中第F個(gè)字段的字段值或者字符串參數(shù)F的值為x。A3.select(#${A5}==null)取出A3中某個(gè)字段為null的記錄序列,用run()函數(shù)循環(huán)修改該序列中的每條記錄。

      python:

      s = time.time()

      data = pd.read_csv("C:/Users/Sean/Desktop/esproc_vs_python/EMPLOYEE_nan.txt",sep="\t")

      data['EID']=pd.Series([i for i in range(1,len(data)+1)])

      for col in data.columns:

         nonan_list = list(data[col][~pd.isna(data[col])])

         fill_list = [nonan_list[random.randint(0,len(nonan_list))] for i in range(len(data[col][pd.isna(data[col])]))]

         data[col][pd.isna(data[col])]=fill_list

      e = time.time()

      print(e-s)

      將字段名為EID的值修改為遞增的序列。這里用pd.Series()生成。

      循環(huán)所有字段。df[col][pd.isna(df)]得到df中包含nan的值。~表示非。nonan_list表示當(dāng)前列不包含nan的所有值組成的list。fill_list表示隨機(jī)生成的要填充nan的值的list。

      將fill_list中的值賦值給包含nan的記錄。

      結(jié)果:

      esproc:

      esproc vs python 2 簡(jiǎn)單計(jì)算

      python

      esproc vs python 2 簡(jiǎn)單計(jì)算


      耗時(shí)
      esproc0.008
      python0.144

      11.EID字段用序列直接替換,SALARY字段用均值填補(bǔ)缺失值,其他字段的缺失值使用其中的一個(gè)隨機(jī)值填補(bǔ)

      esproc:


      AB
      1=now()
      2=file("C:\\Users\\Sean\\Desktop\\esproc_vs_python\\EMPLOYEE_nan.txt")
      3=A2.import@t()
      4>A3.field("EID",to(1,A3.len()))
      5for 2,A3.fno()-1=A3.group(!~.field(A5))
      6
      =B5(1).(~.field(A5))
      7
      >B5(2).run(~.field(A5,B6(rand(B6.len())+1)))
      8=A3.avg(SALARY)
      9=A3.select(!SALARY).run(~.field("SALARY",A8))
      10=interval@ms(A1,now())

      上例中,B5,B6的運(yùn)算會(huì)導(dǎo)致把序列遍歷兩遍,這里進(jìn)行了改進(jìn)

      B5:A.group(xi) 將序列/排列按照一個(gè)或多個(gè)字段/表達(dá)式進(jìn)行等值分組,結(jié)果為組集構(gòu)成的序列。這里是將序表分成兩組,第一組為該字段不包含null的,第二組為包含null的。

      B6:取得該字段去重后的字段值

      B7:這里需要特別注意一下field()函數(shù),r.field(F)取得記錄的第F個(gè)字段的字段值或者字符串參數(shù)F的值。r.field(F,X) 修改記錄r中第F個(gè)字段的字段值或者字符串參數(shù)F的值為x。r.run(xi,…),針對(duì)記錄r計(jì)算表達(dá)式x,最后返回記錄r。此函數(shù)通常用于修改r的字段值

      B9:和B7的原理一樣,利用field()函數(shù)修改SALARY的字段值為A8中計(jì)算出來的平均值。

      python:

      s = time.time()

      data = pd.read_csv("C:/Users/Sean/Desktop/esproc_vs_python/EMPLOYEE_nan.txt",sep="\t")

      data['EID']=pd.Series([i for i in range(1,len(data)+1)])

      for col in list(data.columns)[1:-1]:

         nonan_list = list(data[col][~pd.isna(data[col])])

         fill_list = [nonan_list[random.randint(0,len(nonan_list))] for i in range(len(data[col][pd.isna(data[col])]))]

         data[col][pd.isna(data[col])]=fill_list

      data['SALARY'].fillna(data['SALARY'].mean(),inplace=True)

      print(data.loc[180:190])

      print(e-s)

      將字段名為EID的值修改為遞增的序列。這里用pd.Series()生成。

      循環(huán)所有字段第一到倒數(shù)第二個(gè)字段。df[col][pd.isna(df)]得到df中包含nan的值。~表示非。nonan_list表示當(dāng)前列不包含nan的所有值組成的list。fill_list表示隨機(jī)生成的要填充nan的值的list。

      將fill_list中的值賦值給包含nan的記錄。

      df.fillna(df[s].mean())表示用字段s的平均值填充缺失值。

      結(jié)果:

      esproc:

      esproc vs python 2 簡(jiǎn)單計(jì)算

      python

      esproc vs python 2 簡(jiǎn)單計(jì)算


      耗時(shí)
      esproc0.006
      python0.165

      小結(jié):本節(jié)我們用11個(gè)例子對(duì)數(shù)據(jù)進(jìn)行簡(jiǎn)單的計(jì)算,esproc和python都用到了比較多的函數(shù),還用到了一些相對(duì)復(fù)雜的組合應(yīng)用,這就不得不說esproc現(xiàn)階段的一個(gè)缺點(diǎn)了,查閱資料和使用案例相對(duì)于python太少了,原因就是使用者太少。但是在描述效率和執(zhí)行效率方面,esproc的優(yōu)勢(shì)太明顯了,因此我們要多使用esproc提高工作效率,同時(shí)也可以完善esproc的缺點(diǎn)。esproc中的函數(shù)功能很強(qiáng)大,需要不斷的使用,來充分理解函數(shù)的用法,達(dá)到熟能生巧最終精通的地步。

      EMPLOYEE.txt
      EMPLOYEE_nan.txt

      另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


      本文題目:esprocvspython2簡(jiǎn)單計(jì)算-創(chuàng)新互聯(lián)
      標(biāo)題鏈接:http://www.ef60e0e.cn/article/cedddd.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        磐石市| 芦溪县| 太湖县| 潞西市| 长汀县| 青阳县| 阿拉善盟| 大庆市| 博白县| 繁昌县| 彭泽县| 玛沁县| 巩义市| 汤原县| 巫山县| 南岸区| 扎兰屯市| 丰台区| 腾冲县| 色达县| 周口市| 林州市| 卢氏县| 宁安市| 诏安县| 枝江市| 宁波市| 新沂市| 大关县| 乌恰县| 贵南县| 民县| 涟源市| 屏东市| 修水县| 进贤县| 绿春县| 泾源县| 宜宾县| 南木林县| 濮阳县|