詳解pandas fillna 指定列

一、fillna的基礎用法

fillna是pandas中一個常用的函數,它用於填充數據框或序列中的空值。我們先來看一個簡單的案例:

import pandas as pd
import numpy as np

df = pd.DataFrame({'A': [1,2,np.nan,4,np.nan],
                   'B': [5,np.nan,7,np.nan,9]})
df.fillna(0)

上述案例中,我們創建了一個包含兩列的數據框。其中,’A’列和’B’列都包含了一些空值。接著,我們使用fillna函數,將數據框中的所有空值都填充為0。運行結果如下:

     A    B
0  1.0  5.0
1  2.0  0.0
2  0.0  7.0
3  4.0  0.0
4  0.0  9.0

從運行結果中可以看出,fillna函數很容易地實現了空值的填充。但是,如果我們想要指定某一列進行填充,該如何操作呢?

二、指定列進行填充

在默認情況下,fillna函數會將整個數據框中的空值都填充為同一個值。但是,在有些情況下,我們需要按照不同的列,分別填充不同的值。這時,我們可以使用fillna函數的subset參數來指定需要填充的列。下面是一個示例:

import pandas as pd
import numpy as np

df = pd.DataFrame({'A': [1, 2, np.nan, 4, np.nan],
                   'B': [5, np.nan, 7, np.nan, 9],
                   'C': [np.nan, 3, 6, 8, 10]})
df.fillna({'B':0})

在上述案例中,我們創建了一個包含’A’、’B’、’C’三列的數據框。接著,我們使用fillna函數,並指定subset參數為’B’,將數據框中的空值都在’B’列中填充為0。運行結果如下:

     A    B     C
0  1.0  5.0   NaN
1  2.0  0.0   3.0
2  NaN  7.0   6.0
3  4.0  0.0   8.0
4  NaN  9.0  10.0

從運行結果中可以看出,fillna函數在指定列進行填充時,可以實現按列分別填充不同的值的效果。

三、指定不同的填充方式

在默認情況下,fillna函數會將空值填充為指定的固定值。但是,在一些情況下,我們需要根據不同的列,使用不同的填充方式。比如,我們可以使用前向填充、後向填充或者使用插值的方式進行填充。下面是詳解:

1. 前向填充

使用fillna函數的ffill參數,可以實現前向填充。即用該列中前一個非空的值進行填充。下面是一個示例:

import pandas as pd
import numpy as np

df = pd.DataFrame({'A': [1, 2, np.nan, 4, np.nan],
                   'B': [5, np.nan, 7, np.nan, 9],
                   'C': [np.nan, 3, 6, 8, 10]})
df.fillna(method='ffill')

在上述案例中,我們創建了一個包含’A’、’B’、’C’三列的數據框。接著,我們使用fillna函數,並指定method參數為’ffill’,將數據框中的空值都進行前向填充。運行結果如下:

     A    B     C
0  1.0  5.0   NaN
1  2.0  5.0   3.0
2  2.0  7.0   6.0
3  4.0  7.0   8.0
4  4.0  9.0  10.0

從運行結果中可以看出,fillna函數成功地將數據框中的空值進行了前向填充。

2. 後向填充

使用fillna函數的bfill參數,可以實現後向填充。即用該列中後一個非空的值進行填充。下面是一個示例:

import pandas as pd
import numpy as np

df = pd.DataFrame({'A': [1, 2, np.nan, 4, np.nan],
                   'B': [5, np.nan, 7, np.nan, 9],
                   'C': [np.nan, 3, 6, 8, 10]})
df.fillna(method='bfill')

在上述案例中,我們創建了一個包含’A’、’B’、’C’三列的數據框。接著,我們使用fillna函數,並指定method參數為’bfill’,將數據框中的空值都進行後向填充。運行結果如下:

     A    B     C
0  1.0  5.0   3.0
1  2.0  7.0   3.0
2  4.0  7.0   6.0
3  4.0  9.0   8.0
4  NaN  9.0  10.0

從運行結果中可以看出,fillna函數成功地將數據框中的空值進行了後向填充。

3. 插值填充

使用fillna函數的method參數並指定為插值方法,可以實現插值填充。pandas提供了多種插值演算法,如線性插值、二次插值、三次插值等。下面是一個示例:

import pandas as pd
import numpy as np

df = pd.DataFrame({'A': [1, np.nan, 3, np.nan, 5],
                   'B': [10, np.nan, np.nan, 40, 50]})
df.interpolate(method='quadratic')

在上述案例中,我們創建了一個包含’A’、’B’兩列的數據框。接著,我們使用fillna函數,並指定method參數為’quadratic’,將數據框中的空值都使用二次插值進行填充。運行結果如下:

          A          B
0  1.000000  10.000000
1  1.666667  20.277778
2  3.000000  29.444444
3  4.000000  40.000000
4  5.000000  50.000000

從運行結果中可以看出,fillna函數成功地將數據框中的空值進行了插值填充。

四、結語

pandas中的fillna函數是一個非常實用的函數。通過對該函數的學習,我們可以輕鬆地實現數據框中的空值填充操作。在實際應用中,我們可以根據需求,選擇不同的填充方式和填充值,以滿足不同的數據分析需求。

原創文章,作者:HPEFH,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/372517.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
HPEFH的頭像HPEFH
上一篇 2025-04-24 06:40
下一篇 2025-04-24 06:40

相關推薦

  • Pandas下載whl指南

    本篇文章將從幾個方面為大家詳細解答如何下載Pandas的whl文件。 一、Pandas簡介 Pandas是一個基於Python的軟體庫,主要用於數據分析、清洗和處理。在數據處理方面…

    編程 2025-04-28
  • 如何在Python中安裝和使用Pandas

    本文將介紹如何安裝和使用Python的Pandas庫 一、Pandas庫的介紹 Pandas是Python的一個數據分析庫,提供了許多實用的數據結構和數據分析工具,可以幫助用戶輕鬆…

    編程 2025-04-27
  • Linux sync詳解

    一、sync概述 sync是Linux中一個非常重要的命令,它可以將文件系統緩存中的內容,強制寫入磁碟中。在執行sync之前,所有的文件系統更新將不會立即寫入磁碟,而是先緩存在內存…

    編程 2025-04-25
  • 神經網路代碼詳解

    神經網路作為一種人工智慧技術,被廣泛應用於語音識別、圖像識別、自然語言處理等領域。而神經網路的模型編寫,離不開代碼。本文將從多個方面詳細闡述神經網路模型編寫的代碼技術。 一、神經網…

    編程 2025-04-25
  • Linux修改文件名命令詳解

    在Linux系統中,修改文件名是一個很常見的操作。Linux提供了多種方式來修改文件名,這篇文章將介紹Linux修改文件名的詳細操作。 一、mv命令 mv命令是Linux下的常用命…

    編程 2025-04-25
  • Python安裝OS庫詳解

    一、OS簡介 OS庫是Python標準庫的一部分,它提供了跨平台的操作系統功能,使得Python可以進行文件操作、進程管理、環境變數讀取等系統級操作。 OS庫中包含了大量的文件和目…

    編程 2025-04-25
  • nginx與apache應用開發詳解

    一、概述 nginx和apache都是常見的web伺服器。nginx是一個高性能的反向代理web伺服器,將負載均衡和緩存集成在了一起,可以動靜分離。apache是一個可擴展的web…

    編程 2025-04-25
  • Python輸入輸出詳解

    一、文件讀寫 Python中文件的讀寫操作是必不可少的基本技能之一。讀寫文件分別使用open()函數中的’r’和’w’參數,讀取文件…

    編程 2025-04-25
  • 詳解eclipse設置

    一、安裝與基礎設置 1、下載eclipse並進行安裝。 2、打開eclipse,選擇對應的工作空間路徑。 File -> Switch Workspace -> [選擇…

    編程 2025-04-25
  • git config user.name的詳解

    一、為什麼要使用git config user.name? git是一個非常流行的分散式版本控制系統,很多程序員都會用到它。在使用git commit提交代碼時,需要記錄commi…

    編程 2025-04-25

發表回復

登錄後才能評論