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

          經(jīng)常被人忽視的:Pandas 文本數(shù)據(jù)處理!

          共 1886字,需瀏覽 4分鐘

           ·

          2021-11-15 01:56


          毋庸置疑,Pandas是使用最廣泛的 Python 庫之一,它提供了許多功能和方法來執(zhí)行有效的數(shù)據(jù)處理和數(shù)據(jù)分析。

          我們平時(shí)的操作,大多圍繞著數(shù)字的處理,這是因?yàn)榇蠹伊?xí)慣將表格數(shù)據(jù)與數(shù)字聯(lián)系起來。然而我們無論是使用Excel還是Pandas,其實(shí)都離不開文本類型的數(shù)據(jù)。

          今天,我們會(huì)通過一個(gè)例子,總結(jié)這些常用的Pandas處理文本數(shù)據(jù)的操作。

          首先,先創(chuàng)建一個(gè)帶有模擬數(shù)據(jù)的DataFrame。

          import?pandas?as?pd
          df?=?pd.DataFrame({
          ???"姓":?["王","仲","寶",?"王",?"朱"],
          ???"名":?["玉環(huán)","覓晴","清俊",?"鴻博",?"小五"],
          ???"戶籍地址":?["黑龍江省·哈爾濱市",?"黑龍江省·哈爾濱市",?"黑龍江省·佳木斯市",?"廣西·柳州市",?"湖北省·武漢市"],
          ???"微信":?["Tomout",?"Sm857",?"Adamshffhhjfj",?"Tull88",?"ZPW505"],
          ???"郵箱":?["[email protected]",?"[email protected]",?"[email protected]",?"[email protected]",?"[email protected]"]
          })
          df

          一共五列文本數(shù)據(jù):姓、名、戶籍地址、微信id、郵箱地址。

          講個(gè)冷知識(shí):微信id是不區(qū)分大小寫的。

          如果將微信id這列的文本數(shù)據(jù),全部轉(zhuǎn)換為小寫,在Pandas中可以這樣操作。

          df["微信"]?=?df["微信"].str.lower()
          df

          我們可以通過組合姓氏和名字,來創(chuàng)建姓名這列。

          df["姓名"]?=?df["姓"]?+?df["名"]
          df

          但是在默認(rèn)情況下,新列會(huì)被添加在末尾。

          想要更多的自定義選擇,可以參考下面的代碼。既可以在特定位置插入創(chuàng)建新列,也可以使用 cat 方法組合字符串(此處還可設(shè)置分隔符sep,這里并未設(shè)置)。

          df.insert(2,?
          ??????????"姓名",?
          ??????????df["姓"].str.cat(df["名"],?sep=""))
          df

          對(duì)字符串的一個(gè)常見操作是拆分,當(dāng)文本數(shù)據(jù)包含多條信息時(shí),它就派上用場(chǎng)啦。

          例如,戶籍地址這列包括省份和城市,我們可以通過拆分此列來提取城市的信息。

          df["城市"]?=?df["戶籍地址"].str.split("·",?expand=True)[1]
          df

          對(duì)字符串的另一個(gè)常見操作是篩選過濾,那么在Pandas中如何操作呢?

          如果想篩選“王”字開頭的姓名,既可以直接篩選 姓 這一列,也可以使用startswith()來過濾。

          startswith()endswith() 這兩個(gè)函數(shù),是分別基于字符串的第一個(gè)或最后一個(gè)字母進(jìn)行篩選。

          df[df["姓名"].str.startswith("王")]

          注意:startswith()endswith() 這兩個(gè)函數(shù),還可以通過設(shè)置參數(shù),既能檢測(cè)多個(gè)字符,又能設(shè)置字符串檢測(cè)的起始和結(jié)束位置。

          如果想直接篩選包含特定字符的字符串,可以使用contains()這個(gè)方法。

          例如,篩選戶籍地址列中包含“黑龍江”這個(gè)字符的所有行。

          df[df["戶籍地址"].str.contains("黑龍江")]

          replace()方法可用于替換字符串中的字符序列,通過該方法可以修改Pandas中的文本數(shù)據(jù)。

          df["戶籍地址"]?=?df["戶籍地址"].str.replace("廣西",?"廣西壯族自治區(qū)")
          df

          最后,我們還可以使用字符串的索引。

          例如,我們可以用“str[:5]”表達(dá)式選擇前8個(gè)字符,用“str[-8:]”選擇后8個(gè)字符。

          df["郵箱"].str[:5]
          df["郵箱"].str[-8:]

          本文已經(jīng)羅列了在Pandas中比較常用文本數(shù)據(jù)處理操作,歡迎大家在評(píng)論區(qū)補(bǔ)充!

          各位伙伴們好,詹帥本帥搭建了一個(gè)個(gè)人博客和小程序,匯集各種干貨和資源,也方便大家閱讀,感興趣的小伙伴請(qǐng)移步小程序體驗(yàn)一下哦!(歡迎提建議)

          推薦閱讀


          牛逼!Python常用數(shù)據(jù)類型的基本操作(長文系列第①篇)

          牛逼!Python的判斷、循環(huán)和各種表達(dá)式(長文系列第②篇)

          牛逼!Python函數(shù)和文件操作(長文系列第③篇)

          牛逼!Python錯(cuò)誤、異常和模塊(長文系列第④篇)


          瀏覽 58
          點(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>
                  曰本伊人 | 女人天堂网在线 | 国产毛片成人网站 | 男人的天堂视频网站 | 久青草在在线 |