<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>

          Pandas實(shí)戰(zhàn)——靈活使用pandas基礎(chǔ)知識輕松處理不規(guī)則數(shù)據(jù)

          共 3161字,需瀏覽 7分鐘

           ·

          2023-08-19 12:31

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

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

          劍閣崢嶸而崔嵬,一夫當(dāng)關(guān),萬夫莫開。

          大家好,我是皮皮。

          一、前言

          前幾天在Python最強(qiáng)王者群【wen】問了一個(gè)pandas數(shù)據(jù)合并處理的問題,一起來看看吧。他的原始數(shù)據(jù)如下所示:

          然后預(yù)期的結(jié)果如下所示:

          二、實(shí)現(xiàn)過程

          這里【瑜亮老師】給了一個(gè)指導(dǎo)如下:原始數(shù)據(jù)中包含所有所需的信息,但是因?yàn)樵聪到y(tǒng)導(dǎo)出的格式問題,有些數(shù)據(jù)被分配到了合并行中,并且每個(gè)單獨(dú)的表中都是統(tǒng)一格式。

          源數(shù)據(jù)中'商品', '單價(jià)', '支付方式', '銷售地', '銷量'是已經(jīng)處理好的數(shù)據(jù),不需要單獨(dú)處理。需要獲取的信息是'平臺', '商戶', '賬號',這三個(gè)均在合并行中,群友的建議都是使用re正則表達(dá)式獲取。

          獲取到上面數(shù)據(jù)后,還需要?jiǎng)h掉多余的行。仔細(xì)觀察原始表格我們可以發(fā)現(xiàn):每個(gè)單獨(dú)表格是由一個(gè)平臺、商戶、賬號所查詢的,且所需平臺、商戶、賬號數(shù)據(jù)分布在合并行中,而這些合并行在被pandas讀取后會形成只有第一列有數(shù)值,其他列為NaN的情況。

          處理過后的格式情況如下:

          這就給了我們?nèi)サ暨@些合并行的簡便方法:dropna。

          而用正則獲取到的平臺、商戶、賬號只有一行,需要對數(shù)據(jù)進(jìn)行向下填充空值。而pandas中fillna(method='ffill')即可實(shí)現(xiàn)使用前值去填充下面空值的需求。最后,瑜亮老師出手,實(shí)現(xiàn)需求,代碼如下:

          import pandas as pd


          # 讀取Excel文件
          df = pd.read_excel('20230812.xlsx', header=None)

          # 去除重復(fù)行
          df = df.drop_duplicates(ignore_index=False).reset_index(drop=True)

          # 根據(jù)正則表達(dá)式獲取“賬號”,“平臺”,“商戶”
          df['賬號'] = df[0].str.extract(r'賬號:(\d+)', expand=False).fillna(method='ffill')
          df['平臺'] = df[0].str.extract(r'平臺:(.*?),', expand=False).fillna(method='ffill')
          df['商戶'] = df[0].str.extract(r'商戶:(.*?),', expand=False).fillna(method='ffill')

          #  去除含有空值的行(即excel中所有的合并行
          df = df.dropna().reset_index(drop=True)

          # 設(shè)置df的列名
          df.columns = ['商品''單價(jià)''支付方式''銷售地''銷量''賬號''平臺''商戶']
          df = df[['平臺''商戶''賬號''商品''單價(jià)''支付方式''銷售地''銷量']]
          print(df)

          代碼運(yùn)行后的結(jié)果如下:

          完美實(shí)現(xiàn)群友的需求!

          三、總結(jié)

          大家好,我是皮皮。這篇文章主要盤點(diǎn)了一個(gè)Pandas數(shù)據(jù)合并處理問題,文中針對該問題,給出了具體的解析和代碼實(shí)現(xiàn),幫助粉絲順利解決了問題。

          最后感謝粉絲【wen】提問,感謝【瑜亮老師】給出的思路和代碼解析,感謝【莫生氣】等人參與學(xué)習(xí)交流。

          【提問補(bǔ)充】溫馨提示,大家在群里提問的時(shí)候。可以注意下面幾點(diǎn):如果涉及到大文件數(shù)據(jù),可以數(shù)據(jù)脫敏后,發(fā)點(diǎn)demo數(shù)據(jù)來(小文件的意思),然后貼點(diǎn)代碼(可以復(fù)制的那種),記得發(fā)報(bào)錯(cuò)截圖(截全)。代碼不多的話,直接發(fā)代碼文字即可,代碼超過50行這樣的話,發(fā)個(gè).py文件就行。

          大家在學(xué)習(xí)過程中如果有遇到問題,歡迎隨時(shí)聯(lián)系我解決(我的微信:pdcfighting1),應(yīng)粉絲要求,我創(chuàng)建了一些ChatGPT機(jī)器人交流群和高質(zhì)量的Python付費(fèi)學(xué)習(xí)交流群和付費(fèi)接單群,歡迎大家加入我的Python學(xué)習(xí)交流群和接單群!

          小伙伴們,快快用實(shí)踐一下吧!如果在學(xué)習(xí)過程中,有遇到任何問題,歡迎加我好友,我拉你進(jìn)Python學(xué)習(xí)交流群共同探討學(xué)習(xí)。

          ------------------- End -------------------

          往期精彩文章推薦:

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

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

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

          /今日留言主題/

          隨便說一兩句吧~~

          瀏覽 980
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

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

          手機(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>
                  丝袜美逼在线视频播放 | 男人天堂社区 | 国产999高清无码精品导航 | 俺去啦在线视频 | 亚洲日韩欧美综合 |