欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Pandas數(shù)據(jù)填充的具體實(shí)現(xiàn)

 更新時(shí)間:2024年07月26日 10:00:43   作者:量化回測(cè)和PA交易  
在數(shù)據(jù)分析與預(yù)處理過(guò)程中,臟數(shù)據(jù)幾乎不可避免,本文主要介紹了Pandas數(shù)據(jù)填充的具體實(shí)現(xiàn),也稱(chēng)為缺失值處理,使數(shù)據(jù)清洗工作更加高效,感興趣的可以了解一下

前言

在數(shù)據(jù)分析與預(yù)處理過(guò)程中,臟數(shù)據(jù)幾乎不可避免,這直接影響到后續(xù)分析的準(zhǔn)確性和可靠性。清洗數(shù)據(jù)中最常見(jiàn)的就是處理空值。Pandas DF的數(shù)據(jù)填充功能非常強(qiáng)大。本文介紹Pandas中常用的幾種數(shù)據(jù)填充(也稱(chēng)為缺失值處理)方法,使數(shù)據(jù)清洗工作更加高效。

填充

fillna()是Pandas中最基礎(chǔ)也是最靈活的填充缺失值方法。它允許你用特定的值、Series、DataFrame或前一個(gè)/后一個(gè)非空值來(lái)填充缺失值(NaN)。

常數(shù)填充

In [1]: import pandas as pd
In [2]: import numpy as np
In [3]: data = {'A': [1, 2, np.nan], 'B': [5, np.nan, np.nan], 'C': [1, 2, 3]}
In [4]:  df = pd.DataFrame(data)
In [5]: df
Out[5]:
     A    B  C
0  1.0  5.0  1
1  2.0  NaN  2
2  NaN  NaN  3
In [6]: df.fillna(0)
Out[6]:
     A    B  C
0  1.0  5.0  1
1  2.0  0.0  2
2  0.0  0.0  3

Series填充

可以使用一個(gè)Series對(duì)不同列使用不同的值進(jìn)行填充, 具體如下:

fill_values = pd.Series([10, 20, 30], index=['A', 'B', 'C'])

In [12]: df
Out[12]:
     A    B  C
0  1.0  5.0  1
1  2.0  NaN  2
2  NaN  NaN  3

In [13]: df.fillna(fill_values)
Out[13]:
      A     B  C
0   1.0   5.0  1
1   2.0  20.0  2
2  10.0  20.0  3

附近值填充

前向填充: 使用上一行的值

In [18]: df
Out[18]:
     A    B  C
0  1.0  5.0  1
1  2.0  NaN  2
2  NaN  NaN  3

In [19]: df.ffill()
Out[19]:
     A    B  C
0  1.0  5.0  1
1  2.0  5.0  2
2  2.0  5.0  3

后向填充: 使用后一行的值

In [22]: data = {'A': [1, 2, np.nan], 'B': [5, np.nan, 88], 'C': [1, 2, 3]}

In [23]: df = pd.DataFrame(data)

In [24]: df
Out[24]:
     A     B  C
0  1.0   5.0  1
1  2.0   NaN  2
2  NaN  88.0  3

In [25]: df.bfill()
Out[25]:
     A     B  C
0  1.0   5.0  1
1  2.0  88.0  2
2  NaN  88.0  3

同一行中指定列值進(jìn)行填充

In [28]: df
Out[28]:
     A     B  C
0  1.0   5.0  1
1  2.0   NaN  2
2  NaN  88.0  3

In [29]: df['A']=df.apply(lambda row: row['C'] if pd.isnull(row['A']) else row['A'], axis=1)

In [30]: df
Out[30]:
     A     B  C
0  1.0   5.0  1
1  2.0   NaN  2
2  3.0  88.0  3

插值

插值法是一個(gè)非常有用的功能,通過(guò)插值進(jìn)行填充可以保證一些時(shí)序數(shù)值相對(duì)合理和連續(xù)。這特別能夠避免一些因?yàn)閿?shù)據(jù)丟失原因產(chǎn)生的跳空出現(xiàn)。

線(xiàn)性插值

In [2]: data = {'A': [1, 2, np.nan, 4], 'B': [np.nan, 5, np.nan, 8]}
In [3]: df = pd.DataFrame(data)
In [4]: df
Out[4]:
     A    B
0  1.0  NaN
1  2.0  5.0
2  NaN  NaN
3  4.0  8.0
In [5]: df.interpolate()
Out[5]:
     A    B
0  1.0  NaN
1  2.0  5.0
2  3.0  6.5
3  4.0  8.0

時(shí)間序列插值

當(dāng)df使用datetime作為索引時(shí),支持基于時(shí)間的插值,如下代碼給出了示例:

In [11]: date_index = pd.date_range(start='2024-06-25', periods=7, freq='D')
In [12]: dates_to_remove = pd.to_datetime(['2024-06-26', '2024-06-30'])
In [13]: date_index = date_index[~date_index.isin(dates_to_remove)]
In [14]: date_index
Out[14]:
DatetimeIndex(['2024-06-25', '2024-06-27', '2024-06-28', '2024-06-29',
               '2024-07-01'],
              dtype='datetime64[ns]', freq=None)
In [15]: data_ts = {'Value': [1, 2, np.nan, np.nan, 8]}
In [16]: pd.DataFrame(data_ts, index=date_index)
Out[16]:
            Value
2024-06-25    1.0
2024-06-27    2.0
2024-06-28    NaN
2024-06-29    NaN
2024-07-01    8.0
# 對(duì)比普通線(xiàn)性插值和時(shí)間序列插值
In [17]: pd.DataFrame(data_ts, index=date_index).interpolate()
Out[17]:
            Value
2024-06-25    1.0
2024-06-27    2.0
2024-06-28    4.0
2024-06-29    6.0
2024-07-01    8.0
In [18]: pd.DataFrame(data_ts, index=date_index).interpolate(method='time')
Out[18]:
            Value
2024-06-25    1.0
2024-06-27    2.0
2024-06-28    3.5
2024-06-29    5.0
2024-07-01    8.0

Pandas的插值函數(shù)基于scipy.interpolate.interp1d — SciPy v1.13.1 Manual, 同時(shí)也支持SciPy的幾個(gè)‘zero’, ‘slinear’, ‘quadratic’, ‘cubic’, ‘barycentric’, ‘polynomial等不同的插值類(lèi)型。具體不同插值類(lèi)型可以在遇到需要的時(shí)候,深入閱讀文檔研究,本文不在重復(fù)贅述。

到此這篇關(guān)于Pandas數(shù)據(jù)填充的具體實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Pandas數(shù)據(jù)填充內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用Python讀取Excel數(shù)據(jù)在PPT中創(chuàng)建圖表

    使用Python讀取Excel數(shù)據(jù)在PPT中創(chuàng)建圖表

    使用Python從Excel讀取數(shù)據(jù)并在PowerPoint幻燈片中創(chuàng)建圖表不僅能夠極大地簡(jiǎn)化圖表創(chuàng)建過(guò)程,通過(guò)Python這一橋梁,我們可以輕松實(shí)現(xiàn)數(shù)據(jù)自動(dòng)化處理和圖表生成,本文將演示如何使用Python讀取Excel數(shù)據(jù)在PPT中創(chuàng)建圖表,需要的朋友可以參考下
    2024-08-08
  • python實(shí)現(xiàn)批量文件重命名

    python實(shí)現(xiàn)批量文件重命名

    這篇文章主要介紹了python實(shí)現(xiàn)批量文件重命名,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • Python把png轉(zhuǎn)成jpg的項(xiàng)目實(shí)踐

    Python把png轉(zhuǎn)成jpg的項(xiàng)目實(shí)踐

    本文主要介紹了Python把png轉(zhuǎn)成jpg的項(xiàng)目實(shí)踐,可以使用PIL庫(kù)來(lái)將PNG圖片轉(zhuǎn)換為JPG格式,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-02-02
  • 用Python實(shí)現(xiàn)換行符轉(zhuǎn)換的腳本的教程

    用Python實(shí)現(xiàn)換行符轉(zhuǎn)換的腳本的教程

    這篇文章主要介紹了用Python實(shí)現(xiàn)換行符轉(zhuǎn)換的腳本的教程,代碼非常簡(jiǎn)單,包括一個(gè)對(duì)操作說(shuō)明的功能的實(shí)現(xiàn),需要的朋友可以參考下
    2015-04-04
  • 對(duì)python3中, print橫向輸出的方法詳解

    對(duì)python3中, print橫向輸出的方法詳解

    今天小編就為大家分享一篇對(duì)python3中, print橫向輸出的方法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • pycharm配置QtDesigner的超詳細(xì)方法

    pycharm配置QtDesigner的超詳細(xì)方法

    這篇文章主要介紹了pycharm配置QtDesigner的超詳細(xì)方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • 使用python?matplotlib畫(huà)折線(xiàn)圖實(shí)例代碼

    使用python?matplotlib畫(huà)折線(xiàn)圖實(shí)例代碼

    Matplotlib是一個(gè)Python工具箱,用于科學(xué)計(jì)算的數(shù)據(jù)可視化,下面這篇文章主要給大家介紹了關(guān)于如何使用python?matplotlib畫(huà)折線(xiàn)圖的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04
  • Python實(shí)現(xiàn)隨機(jī)生成算術(shù)題的示例代碼

    Python實(shí)現(xiàn)隨機(jī)生成算術(shù)題的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何利用Python實(shí)現(xiàn)隨機(jī)生成算術(shù)題的功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-04-04
  • Python計(jì)算一個(gè)點(diǎn)到所有點(diǎn)的歐式距離實(shí)現(xiàn)方法

    Python計(jì)算一個(gè)點(diǎn)到所有點(diǎn)的歐式距離實(shí)現(xiàn)方法

    今天小編就為大家分享一篇Python計(jì)算一個(gè)點(diǎn)到所有點(diǎn)的歐式距離實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-07-07
  • 利用python控制Qt程序的示例詳解

    利用python控制Qt程序的示例詳解

    這篇文章主要為大家詳細(xì)介紹了如何利用python實(shí)現(xiàn)控制Qt程序,從而進(jìn)行文本輸入,按鈕點(diǎn)擊等組件控制,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-08-08

最新評(píng)論