最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

前言

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

填充

fillna()是Pandas中最基礎(chǔ)也是最靈活的填充缺失值方法。它允許你用特定的值、Series、DataFrame或前一個/后一個非空值來填充缺失值(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填充

可以使用一個Series對不同列使用不同的值進(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

插值

插值法是一個非常有用的功能,通過插值進(jìn)行填充可以保證一些時序數(shù)值相對合理和連續(xù)。這特別能夠避免一些因為數(shù)據(jù)丟失原因產(chǎ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

時間序列插值

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

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
# 對比普通線性插值和時間序列插值
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, 同時也支持SciPy的幾個‘zero’, ‘slinear’, ‘quadratic’, ‘cubic’, ‘barycentric’, ‘polynomial等不同的插值類型。具體不同插值類型可以在遇到需要的時候,深入閱讀文檔研究,本文不在重復(fù)贅述。

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

相關(guān)文章

  • Python中nonlocal的作用域靈活控制

    Python中nonlocal的作用域靈活控制

    nonlocal關(guān)鍵字為我們提供了一種在嵌套函數(shù)中訪問和修改外部非全局作用域變量的方式,本文主要介紹了Python中nonlocal的作用域靈活控制,具有一定的參考價值,感興趣的可以了解一下
    2025-04-04
  • Python實現(xiàn)數(shù)據(jù)庫與Excel文件之間的數(shù)據(jù)自動化導(dǎo)入與導(dǎo)出

    Python實現(xiàn)數(shù)據(jù)庫與Excel文件之間的數(shù)據(jù)自動化導(dǎo)入與導(dǎo)出

    數(shù)據(jù)庫和Excel文件是兩種常見且重要的數(shù)據(jù)存儲方式,本文將介紹如何使用Python有效地實現(xiàn)數(shù)據(jù)庫與Excel文件之間的數(shù)據(jù)自動化導(dǎo)入與導(dǎo)出,以SQLite數(shù)據(jù)庫為例,需要的朋友可以參考下
    2024-06-06
  • Python異常信息的不同展現(xiàn)方法總結(jié)

    Python異常信息的不同展現(xiàn)方法總結(jié)

    在日常開發(fā)的過程中,當(dāng)代碼報錯時,我們通常要不斷打印、閱讀traceback提示信息,來調(diào)試代碼,這篇文章介紹了如何實現(xiàn)一個Exception?Hooks,使得traceback模塊的提示信息更加精確;同時還介紹了一些第三方庫,這些庫也提供了Exception?Hooks的功能
    2022-11-11
  • Python 數(shù)據(jù)處理更容易的12個輔助函數(shù)總結(jié)

    Python 數(shù)據(jù)處理更容易的12個輔助函數(shù)總結(jié)

    Python的產(chǎn)生似乎就是專門用來處理數(shù)據(jù)的,順理成章的成為大數(shù)據(jù)的主流語言,本文介紹十二個函數(shù)輔助你更容易更便捷的用Python進(jìn)行數(shù)據(jù)處理
    2021-11-11
  • pycharm日志總是彈出“無法運(yùn)行Git,未安裝Git”的問題

    pycharm日志總是彈出“無法運(yùn)行Git,未安裝Git”的問題

    這篇文章主要介紹了pycharm日志總是彈出“無法運(yùn)行Git,未安裝Git”的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • sqlalchemy實現(xiàn)時間列自動更新教程

    sqlalchemy實現(xiàn)時間列自動更新教程

    這篇文章主要介紹了sqlalchemy實現(xiàn)時間列自動更新教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • 詳解python statistics模塊及函數(shù)用法

    詳解python statistics模塊及函數(shù)用法

    本節(jié)介紹 Python 中的另一個常用模塊 —— statistics模塊,該模塊提供了用于計算數(shù)字?jǐn)?shù)據(jù)的數(shù)理統(tǒng)計量的函數(shù)。這篇文章重點給大家介紹python statistics 模塊的一些用法,感興趣的朋友跟隨小編一起看看吧
    2019-10-10
  • 一文了解Python3的錯誤和異常

    一文了解Python3的錯誤和異常

    Python 的語法錯誤或者稱之為解析錯,是初學(xué)者經(jīng)常碰到的。即便 Python 程序的語法是正確的,在運(yùn)行它的時候,也有可能發(fā)生錯誤。運(yùn)行期檢測到的錯誤被稱為異常。本文就來和大家聊聊Python3的錯誤和異常,感興趣的可以學(xué)習(xí)一下
    2022-09-09
  • Matlab中的mat數(shù)據(jù)轉(zhuǎn)成python中使用的npy數(shù)據(jù)遇到的坑及解決

    Matlab中的mat數(shù)據(jù)轉(zhuǎn)成python中使用的npy數(shù)據(jù)遇到的坑及解決

    這篇文章主要介紹了Matlab中的mat數(shù)據(jù)轉(zhuǎn)成python中使用的npy數(shù)據(jù)遇到的坑及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • python映射列表實例分析

    python映射列表實例分析

    這篇文章主要介紹了python映射列表,實例分析了python映射列表遍歷計算其中每一個元素的使用技巧,需要的朋友可以參考下
    2015-01-01

最新評論

三原县| 深泽县| 新建县| 芒康县| 宜都市| 彰化市| 峡江县| 安顺市| 航空| 浦东新区| 柯坪县| 金昌市| 兴仁县| 麻栗坡县| 阿图什市| 右玉县| 宁强县| 元谋县| 麻城市| 扶余县| 墨玉县| 潍坊市| 绍兴县| 旬阳县| 潢川县| 昌平区| 唐河县| 武强县| 扶沟县| 乡宁县| 岳阳县| 湟中县| 靖安县| 莫力| 闻喜县| 翁源县| 滦南县| 封丘县| 大足县| 阿克苏市| 临猗县|