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

          值得收藏!這是 Python 數(shù)據(jù)預(yù)處理最頻繁使用的5個(gè)技巧!

          共 1899字,需瀏覽 4分鐘

           ·

          2022-02-28 05:26

          ↑?關(guān)注 + 星標(biāo)?,每天學(xué)Python新技能

          后臺(tái)回復(fù)【大禮包】送你Python自學(xué)大禮包




          我們知道數(shù)據(jù)是一項(xiàng)寶貴的資產(chǎn),近年來(lái)經(jīng)歷了指數(shù)級(jí)增長(zhǎng)。但是原始數(shù)據(jù)通常不能立即使用,它需要進(jìn)行大量清理和轉(zhuǎn)換。

          Pandas 是 Python 的數(shù)據(jù)分析和操作庫(kù),它有多種清理數(shù)據(jù)的方法和函數(shù)。在本文中,我將做5個(gè)示例來(lái)幫助大家掌握數(shù)據(jù)清理技能。

          數(shù)據(jù)集

          這是一個(gè)包含臟數(shù)據(jù)的示例數(shù)據(jù)框讓我們看看可以做些什么來(lái)使這個(gè)數(shù)據(jù)集變得干凈。

          • 第一列是多余的,應(yīng)該刪除;
          • Date 沒(méi)有標(biāo)準(zhǔn);
          • Name 寫(xiě)成姓氏、名字,并有大寫(xiě)和小寫(xiě)字母;
          • Payment 代表一個(gè)數(shù)量,但它們顯示為字符串,需要處理;
          • 在 Note 中,有一些非字母數(shù)字應(yīng)該被刪除;

          示例 1

          刪除列是使用 drop 函數(shù)的簡(jiǎn)單操作。除了寫(xiě)列名外,我們還需要指定軸參數(shù)的值,因?yàn)?drop 函數(shù)用于刪除行和列。最后,我們可以使用 inplace 參數(shù)來(lái)保存更改。

          import?pandas?as?pd
          df.drop("Unnamed:?0",?axis=1,?inplace=True)

          示例 2

          我們有多種選擇將日期值轉(zhuǎn)換為適當(dāng)?shù)母袷健R环N更簡(jiǎn)單的方法是使用 astype 函數(shù)來(lái)更改列的數(shù)據(jù)類型。它能夠處理范圍廣泛的值并將它們轉(zhuǎn)換為整潔、標(biāo)準(zhǔn)的日期格式。

          df["Date"]?=?df["Date"].astype("datetime64[ns]")

          示例 3

          關(guān)于名稱列,我們首先需要解決如下問(wèn)題:

          • 首先我們應(yīng)該用所有大寫(xiě)或小寫(xiě)字母來(lái)表示它們。另一種選擇是將它們大寫(xiě)(即只有首字母是大寫(xiě)的);
          • 切換姓氏和名字的順序;
          df["Name"].str.split(",",?expand=True)

          然后,我將取第二列與第一列結(jié)合起來(lái),中間有一個(gè)空格。最后一步是使用 lower 函數(shù)將字母轉(zhuǎn)換為小寫(xiě)。

          df["Name"]?=?(df["Name"].str.split(",",?expand=True)[1]?+?"?"?+?df["Name"].str.split(",",?expand=True)[0]).str.lower()

          示例 4

          支付Payment的數(shù)據(jù)類型是不能用于數(shù)值分析的。在將其轉(zhuǎn)換為數(shù)字?jǐn)?shù)據(jù)類型(即整數(shù)或浮點(diǎn)數(shù))之前,我們需要?jiǎng)h除美元符號(hào)并將第一行中的逗號(hào)替換為點(diǎn)。

          我們可以使用 Pandas 在一行代碼中完成所有這些操作

          df["Payment"]?=?df["Payment"].str[1:].str.replace(",",?".").astype("float")

          示例 5

          Note 列中的一些字符也需要?jiǎng)h除。在處理大型數(shù)據(jù)集時(shí),可能很難手動(dòng)替換它們。

          我們可以做的是刪除非字母數(shù)字字符(例如?、!、-、. 等)。在這種情況下也可以使用 replace 函數(shù),因?yàn)樗邮苷齽t表達(dá)式。

          如果我們只想要字母字符,下面是我們?nèi)绾问褂锰鎿Q函數(shù):

          df["Note"].str.replace('[^a-zA-Z]',?'')
          0??????Unhappy
          1????Satisfied
          2??????Neutral
          3??????Unhappy
          4??????Neutral
          Name:?Note,?dtype:?object

          如果我們想要字母和數(shù)字(即字母數(shù)字),我們需要在我們的正則表達(dá)式中添加數(shù)字:

          df["Note"].str.replace('[^a-zA-Z0-9]',?'')
          0??????Unhappy
          1????Satisfied
          2??????Neutral
          3??????Unhappy
          4??????Neutral0
          Name:?Note,?dtype:?object

          請(qǐng)注意,這次沒(méi)有刪除最后一行中的 0,我只需選擇第一個(gè)選項(xiàng)。如果我還想在刪除非字母數(shù)字字符后將字母轉(zhuǎn)換為小寫(xiě)

          df["Note"]?=?df["Note"].str.replace('[^a-zA-Z]',?'').str.lower()

          與初始形式相比,數(shù)據(jù)集看起來(lái)要好得多。當(dāng)然,它是一個(gè)簡(jiǎn)單的數(shù)據(jù)集,但這些清理操作在處理大型數(shù)據(jù)集時(shí)肯定會(huì)對(duì)你有所幫助。


          推薦閱讀

          1. 爬取網(wǎng)站內(nèi)容,合并Excel數(shù)據(jù)…推薦一個(gè)自動(dòng)化辦公神器!

          2. 分享一個(gè)我最近用的國(guó)產(chǎn)神器, ApiPost!

          3. 來(lái)了,最強(qiáng) Python 學(xué)習(xí)資料(全彩打印)


          您看此文用???分??秒,轉(zhuǎn)發(fā)只需1秒哦~

          瀏覽 29
          點(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>
                  日韩成人午夜 | 国产成人香蕉 | 操逼香蕉 | 蜜臀久久99精品久久久久久宅男 | 一区二区三区四区视频 |