<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          總結(jié)了pandas提取數(shù)據(jù)的15種方法,統(tǒng)統(tǒng)只需1行代碼,真香!

          共 311字,需瀏覽 1分鐘

           ·

          2021-01-23 09:06

          點(diǎn)擊上方“Python爬蟲與數(shù)據(jù)挖掘”,進(jìn)行關(guān)注

          回復(fù)“書籍”即可獲贈(zèng)Python從入門到進(jìn)階共10本電子書

          明朝望鄉(xiāng)處,應(yīng)見隴頭梅。


          pandas是python數(shù)據(jù)分析必備工具,它有強(qiáng)大的數(shù)據(jù)清洗能力,往往能用非常少的代碼實(shí)現(xiàn)較復(fù)雜的數(shù)據(jù)處理

          今天,鳥哥總結(jié)了pandas篩選數(shù)據(jù)的15個(gè)常用技巧,主要包括5個(gè)知識(shí)點(diǎn):

          1.比較運(yùn)算:==、<、>、>=、<=、!=2.范圍運(yùn)算:between(left,right)3.字符篩選:str.contains(pattern或字符串,na=False)4.邏輯運(yùn)算:&(與)、|(或)、not(取反)5.比較函數(shù):eq, ne, le, lt, ge, gt(相當(dāng)于==,=!,<=,<,>=,>)6.apply和isin函數(shù)

          下面以超市運(yùn)營(yíng)數(shù)據(jù)為例,給大家逐個(gè)講解

          首先讀取數(shù)據(jù):

          import?pandas?as?pd
          data=pd.read_excel('超市運(yùn)營(yíng)數(shù)據(jù)模板.xlsx')
          data

          先看一下各列的數(shù)據(jù)類型:

          data.dtypes
          商品ID             int64
          類別ID int64
          門店編號(hào) object
          單價(jià) float64
          銷量 float64
          訂單ID object
          日期 datetime64[ns]
          時(shí)間 object
          dtype: object

          下面以實(shí)際應(yīng)用場(chǎng)景為例開始講解:

          1.篩選門店編號(hào)為'CDXL'的運(yùn)營(yíng)數(shù)據(jù)

          ①第一種方法,用比較運(yùn)算符‘==’:

          data[data.門店編號(hào)=='CDXL']

          ②第二種方法,用比較函數(shù)'eq':

          data[data['門店編號(hào)'].eq('CDXL')]

          2.篩選單價(jià)小于等于10元的運(yùn)營(yíng)數(shù)據(jù)

          ③第一種方法,用比較運(yùn)算符‘<=’:

          data[data.單價(jià)<=10]

          ④第二種方法,用比較函數(shù)'le':

          data[data['單價(jià)'].le(10)]

          3.篩選銷量大于2000的運(yùn)營(yíng)數(shù)據(jù)

          ⑤第一種方法,用比較運(yùn)算符‘>=’:

          data[data.銷量>2]

          ⑥第二種方法,用比較函數(shù)'ge':

          data[data['銷量'].ge(2)]

          4.篩選除門店'CDXL'外的運(yùn)營(yíng)數(shù)據(jù)

          ⑦第一種方法,用比較運(yùn)算符‘!=’:

          data[data.門店編號(hào)!='CDXL']

          ⑧第二種方法,用比較函數(shù)'ne':

          data[data['門店編號(hào)'].ne('CDXL')]

          5.篩選2020年5月的運(yùn)營(yíng)數(shù)據(jù)

          首先將日期格式化:

          data['日期']=data["日期"].values.astype('datetime64')??#如果已為日期格式則此步驟可省略
          data['日期']
          import?datetime
          s_date?=?datetime.datetime.strptime('2020-04-30',?'%Y-%m-%d').date()??#起始日期
          e_date?=?datetime.datetime.strptime('2020-06-01',?'%Y-%m-%d').date()??#結(jié)束日期

          ⑨第一種方法,用邏輯運(yùn)算符號(hào)'>' '<'和'&':

          Pandasdatetime64[ns]不能直接與datetime.date相比,需要用pd.Timestamp進(jìn)行轉(zhuǎn)化

          data[(data.日期>pd.Timestamp(s_date))&(data.日期

          ⑩第二種,用比較函數(shù)'gt''lt'和'&':

          data[(data['日期'].lt(pd.Timestamp(e_date)))&(data['日期'].gt(pd.Timestamp(s_date)))]

          ?第三種,用apply函數(shù)實(shí)現(xiàn):

          id_a=data.日期.apply(lambda?x:?x.year?==2020??and?x.month==5)
          data[id_a]

          ?第四種,用between函數(shù)實(shí)現(xiàn):

          id_b=data.日期.between(pd.Timestamp(s_date),pd.Timestamp(e_date))
          data[id_b]

          6.篩選“類別ID”包含'000'的數(shù)據(jù)

          ?第一種,用contains函數(shù):

          data['類別ID']=data['類別ID'].values.astype('str')??#將該列轉(zhuǎn)換為字符數(shù)據(jù)類型
          id_c=data.類別ID.str.contains('000',na=False)
          data[id_c]

          ?第二種,用isin函數(shù):

          id_i=data.類別ID.isin(['000'])??#接受一個(gè)列表
          data[id_i]

          很遺憾,isin函數(shù)搞不定,因?yàn)樗荒芘袛嘣摿兄性厥欠裨诹斜碇?/span>

          7.篩選商品ID以“301”開頭的運(yùn)營(yíng)數(shù)據(jù)

          ?需要用contains函數(shù)結(jié)合正則表達(dá)式使用:

          data['商品ID']=data['商品ID'].values.astype('str')??#將該列轉(zhuǎn)換為字符數(shù)據(jù)類型
          id_c2=data.商品ID.str.contains('301\d{5}',na=False)
          data[id_c2]


          如果覺得文章寫的不錯(cuò),請(qǐng)點(diǎn)個(gè)“在看”支持一下鳥哥!



          -------------------?End?-------------------

          往期精彩文章推薦:

          歡迎大家點(diǎn)贊,留言,轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持

          想加入Python學(xué)習(xí)群請(qǐng)?jiān)诤笈_(tái)回復(fù)【入群

          萬(wàn)水千山總是情,點(diǎn)個(gè)【在看】行不行

          /今日留言主題/

          隨便說一兩句吧~~

          瀏覽 65
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日韩美毛片三级片视频 | 高清无码在线观看18 | 性爱久久 | 国产大鸡八| 91看片鸡巴大 |