Pandas中刪除空列


Pandas資料框是一個非常強大的資料操作工具。它是一個由行和列組成的表格資料結構。這個二維矩陣的大小取決於資料集的複雜性而變化。我們可以使用不同型別的資料來源來建立資料框,從資料庫到檔案。

Pandas資料框中的列表示一系列資訊,可以是整數、浮點數或字串。我們可以對這些列執行許多操作,包括刪除、索引、過濾等。在這篇文章中,我們將執行一個這樣的基本操作:從Pandas資料框中刪除/移除空列。

首先,讓我們瞭解資料框中什麼是空列。

建立包含空列的資料框

我們利用計算技術建立一個用於分析資料的資料框。每一列包含一部分資料,並具有一定的意義。對於複雜的資料集,生成的資料框可能包含一些空列,這會降低資料框的相關性。為了生成最佳化的資料框,我們傾向於從中消除這種不必要的資料。

如果一列包含“**NaN**”(非數字)值,則它被認為是“空”的。包含“**空空格**”和“**零**”值的列本質上不是“空”的,因為“空空格”和“零值”都表示資料集的某些資訊。

當我們建立一個數據框並且沒有向列傳遞任何資料時,就會建立一個空列。我們可以使用“**dataframe.drop()**”方法刪除常規列和空列,但是為了專門刪除空列,我們使用“**dataframe.dropna()**”方法。讓我們建立一個包含“NaN”值的資料框,然後開始刪除操作。

示例

我們匯入了“pandas”和“numpy”庫,然後傳遞了一個字典資料集,其中包含與不同宿舍相關的資訊。

我們使用“DataFrame()”函式建立了資料框,並傳遞了一個值列表來標記行。

在資料集中,我們使用numpy庫將NaN值賦給了“宿舍位置”列,最後列印了資料框。

import pandas as pd
import numpy as np

dataset = {"Hostel ID":["DSC224", "DSC124", "DSC568", "DSC345"], "Hostel Rating":[8, 6, 10, 5], "Hostel price":[35000, 32000, 50000, 24000], "Hostel location": [np.nan, np.nan, np.nan, np.nan]}

dataframe = pd.DataFrame(dataset, index= ["Hostel 1", "Hostel 2", "Hostel 3", "Hostel 4"])
print(dataframe)

輸出

          Hostel ID   Hostel Rating      Hostel price      Hostel location
Hostel 1    DSC224              8         35000              NaN
Hostel 2    DSC124              6         32000              NaN
Hostel 3    DSC568             10         50000              NaN
Hostel 4    DSC345              5         24000              NaN

使用dropna()方法刪除空列

讓我們將dropna()方法應用於先前的資料框。

示例

建立資料框後,我們使用“**dropna()**”函式刪除所有包含NaN值的列。

由於我們正在對列進行操作,因此我們將軸值指定為“1”,然後透過將“**how**”值賦值為“**all**”來編寫刪除邏輯。這意味著只有當列的所有值都是“NaN”時,才會刪除該列。

最後,我們建立並列印了一個新的不包含“NaN”值的資料框。

import pandas as pd
import numpy as np
dataset = {"Hostel ID":["DSC224", "DSC124", "DSC568", "DSC345"], "Hostel Rating":[8, 6, 10, 5], "Hostel price":[35000, 32000, 50000, 24000], "Hostel location": [np.nan, np.nan, np.nan, np.nan]}
dataframe = pd.DataFrame(dataset, index= ["Hostel 1", "Hostel 2", "Hostel 3", "Hostel 4"])
print(dataframe)
Emp_drop = dataframe.dropna(how= "all", axis=1)
print("After dropping the empty columns using dropna() we get: -")
print(Emp_drop)

輸出

         Hostel ID     Hostel Rating     Hostel price     Hostel location
Hostel 1    DSC224              8         35000              NaN
Hostel 2    DSC124              6         32000              NaN
Hostel 3    DSC568             10         50000              NaN
Hostel 4    DSC345              5         24000              NaN
After dropping the empty columns using dropna() we get: -
           Hostel ID     Hostel Rating   Hostel price
Hostel 1    DSC224              8         35000
Hostel 2    DSC124              6         32000
Hostel 3    DSC568             10         50000
Hostel 4    DSC345              5         24000

**注意** - 如果我們想更改當前資料框而不是建立一個新的資料框,我們使用“**inplace**”子句。

dataframe.dropna(how= "all", axis=1, inplace=True)
print(dataframe)

使用notnull()方法刪除空列

建立資料框後,我們使用**notnull()**方法和**loc()**函式來過濾和選擇包含“NaN”值的列。我們指定了評估軸並列印了不包含“NaN”值的資料框。

示例

import pandas as pd
import numpy as np
dataset = {"Hostel ID":["DSC224", "DSC124", "DSC568", "DSC345"], "Hostel Rating":[8, 6, 10, 5], "Hostel price":[35000, 32000, 50000, 24000], "Hostel location": [np.nan, np.nan, np.nan, np.nan]}
dataframe = pd.DataFrame(dataset, index= ["Hostel 1", "Hostel 2", "Hostel 3", "Hostel 4"])
print(dataframe)
dataframe = dataframe.loc[:, dataframe.notnull().any(axis=0)]
print("Using notnull() method to remove empty columns: -")
print(dataframe)

輸出

         Hostel ID  Hostel Rating  Hostel price  Hostel location
Hostel 1    DSC224              8         35000              NaN
Hostel 2    DSC124              6         32000              NaN
Hostel 3    DSC568             10         50000              NaN
Hostel 4    DSC345              5         24000              NaN
Using notnull() method to remove empty columns: -
         Hostel ID  Hostel Rating  Hostel price
Hostel 1    DSC224              8         35000
Hostel 2    DSC124              6         32000
Hostel 3    DSC568             10         50000
Hostel 4    DSC345              5         24000

結論

在這篇文章中,我們介紹了刪除空列的不同方法,即包含“NaN”值的列。“**dropna()**”方法和“**notnull()**”方法以及如何在資料框中實現它們來刪除空列。我們還了解了去除這些不必要資料的重要性以及它如何提高資料框的相關性。

更新於:2023年5月5日

9K+ 次瀏覽

啟動您的職業生涯

完成課程後獲得認證

開始
廣告
© . All rights reserved.