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

pandas解決數(shù)據(jù)缺失、重復(fù)的方法與實(shí)踐過(guò)程

 更新時(shí)間:2023年06月21日 14:21:49   投稿:jingxian  
這篇文章主要介紹了pandas解決數(shù)據(jù)缺失、重復(fù)的方法與實(shí)踐過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

1. 數(shù)據(jù)缺失

常見(jiàn)的數(shù)據(jù)缺失是指一條數(shù)據(jù)記錄中,某個(gè)數(shù)據(jù)項(xiàng)沒(méi)有值,延申到實(shí)際應(yīng)用中,還有一種時(shí)間序列的缺失,例如按整點(diǎn)采集數(shù)據(jù),缺少某一時(shí)刻的數(shù)據(jù)(缺少一整行數(shù)據(jù))。

解決方法,如果不刪除數(shù)據(jù),一般進(jìn)行插值處理,常見(jiàn)的補(bǔ)0,或者某個(gè)經(jīng)驗(yàn)值,更科學(xué)的方法是線性插值,或者更復(fù)雜的算法。

1.1. 時(shí)間序列補(bǔ)充

例如,給定某個(gè)時(shí)間序列(逐時(shí)),中間缺少3點(diǎn)數(shù)據(jù),插值補(bǔ)充,并擴(kuò)充數(shù)據(jù)到間隔半個(gè)小時(shí)。

代碼 1.

import pandas as pd
key = ['getTime','temp','text','humidity']
data = [['2023-04-30T00:00',7,'晴',57],
        ['2023-04-30T01:00',6,'晴',58],
        ['2023-04-30T02:00',6,'陰',55],
        ['2023-04-30T04:00',4,'晴',50]]
df = pd.DataFrame(data,columns=key)
df.index = df['getTime'].astype('datetime64')

補(bǔ)充時(shí)間序列,同時(shí)對(duì)數(shù)值列進(jìn)行線性插值。

代碼 2.

df1 = df.resample('30min').interpolate(method='linear') 

注意:補(bǔ)充時(shí)間序列,需要DataFrame中的index是時(shí)間序列。

或者,新建時(shí)間序列表,再通過(guò)pd.merge關(guān)聯(lián)補(bǔ)足缺失時(shí)序。

代碼 3.

times = pd.date_range('2023-04-30 00:00', '2023-04-30 04:59', freq='1h') # 與上文采用標(biāo)準(zhǔn)國(guó)際時(shí)間 UTC
# times = pd.date_range('2023-04-30 00:00', '2023-04-30 04:59', freq='1h', tz='Asia/Shanghai')
df0 = pd.DataFrame(index=times)
df0 = pd.merge(left=df0,right=df,left_index=True,right_index=True,how='left')

1.2. 數(shù)據(jù)項(xiàng)缺失

1.2.1. 線性插值

代碼 4.

df0[['temp','humidity']] = df0[['temp','humidity']].interpolate(method='linear')  

或者,直接在時(shí)間序列補(bǔ)充時(shí),線性插值,詳見(jiàn)代碼 2。

1.2.2. 復(fù)制上一條數(shù)據(jù)

如果是非數(shù)值型數(shù)據(jù),可以采用復(fù)制上一條數(shù)據(jù)內(nèi)容,同理,數(shù)值型也滿足。

代碼 5.

df0[['text','getTime']] = df0[['text','getTime']].fillna(method='ffill') 

1.2.3. 空值填充

例如,針對(duì)代碼 3的結(jié)果進(jìn)行填充空值“6”。

代碼 6.

df0.fillna(6, inplace=True) 

2. 刪除重復(fù)數(shù)據(jù)行

首先,構(gòu)建重復(fù)數(shù)據(jù),合并同一張表。

代碼 7.

# 合并同表前兩條記錄
df2 = pd.concat([df,df.head(2)])

其中,head(2)是取表中前兩條記錄。

2.1. 刪除完全重復(fù)的行

刪除重復(fù)記錄。

代碼 8.

df2 = df2.drop_duplicates()

注意:這個(gè)是刪除完全相同的數(shù)據(jù)。

2.2. 刪除重復(fù)數(shù)據(jù)項(xiàng)

按某列(可以多個(gè))進(jìn)行去重,對(duì)于重復(fù)項(xiàng),保留第一次出現(xiàn)的值。

代碼 9.

df2 = df2.drop_duplicates('text',keep='first')
df.drop_duplicates(subset=[‘A',‘B',‘C'],keep=‘first',inplace=True)

參數(shù)說(shuō)明如下:

  • subset:表示要進(jìn)去重的列名,默認(rèn)為 None。
  • keep:有三個(gè)可選參數(shù),分別是 first、last、False,默認(rèn)為 first,表示只保留第一次出現(xiàn)的重復(fù)項(xiàng),刪除其余重復(fù)項(xiàng),last 表示只保留最后一次出現(xiàn)的重復(fù)項(xiàng),F(xiàn)alse 則表示刪除所有重復(fù)項(xiàng)。
  • inplace:布爾值參數(shù),默認(rèn)為 False 表示刪除重復(fù)項(xiàng)后返回一個(gè)副本,若為 Ture 則表示直接在原數(shù)據(jù)上刪除重復(fù)項(xiàng)。

3. 按條件修改數(shù)據(jù)

按條件修改部分?jǐn)?shù)據(jù)值,常用方法是apply()調(diào)用函數(shù)處理,也可以直接使用loc定位索引進(jìn)行修改數(shù)據(jù),引用代碼 1產(chǎn)生的結(jié)果。

本文采用loc方式,按條件修改數(shù)據(jù)。

代碼 10.

df.loc[df.loc[(df.index>=pd.to_datetime('2023-04-30 01:00')) ].index,
        ['temp','humidity']] = df[['temp','humidity']].loc[(df.index>=pd.to_datetime('2023-04-30 01:00')) ]+10

按索引,具體列為查詢條件都可以。

4. 發(fā)現(xiàn)空值及處理

4.1. 空值查詢

查詢出空值,并替換同行數(shù)據(jù)中的另一項(xiàng)數(shù)據(jù),例如:查詢代碼 2的結(jié)果集,查詢“text”為空時(shí)的“temp”值,由“humidity”的值替換。

代碼 11.

df1.loc[df1[df1['text'].isnull()].index,'temp'] = df1['humidity'].loc[df1['text'].isnull()]

依據(jù)查詢代碼 2的結(jié)果集,查詢非空數(shù)據(jù)。

代碼 12.

df1 = df1.loc[~df1['text'].isnull()]

其中,~ 表示取反符號(hào),.isnull() 方法用于判斷是否為空。

4.2. 刪除空值

依據(jù)查詢代碼 2的結(jié)果集,刪除空值的數(shù)據(jù)行。

代碼 13.

df1 = df1.dropna()

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 新手Python環(huán)境配置指南及pip安裝教程

    新手Python環(huán)境配置指南及pip安裝教程

    這篇文章主要給大家介紹了新手Python環(huán)境配置指南及pip安裝教程的相關(guān)資料,pip是一款非常方便的python包管理工具,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-07-07
  • Python編程中被忽視的核心技巧總結(jié)

    Python編程中被忽視的核心技巧總結(jié)

    這篇文章主要介紹了一些在?Python?編程中可能被忽視的核心功能,包括默認(rèn)參數(shù)、海象運(yùn)算符、*args?和?**kwargs?的使用等,需要的可參考下
    2023-08-08
  • Python中isnumeric()方法的使用簡(jiǎn)介

    Python中isnumeric()方法的使用簡(jiǎn)介

    這篇文章主要介紹了Python中isnumeric()方法的使用,isnumeric()方法的使用是Python入門中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-05-05
  • django模板語(yǔ)法學(xué)習(xí)之include示例詳解

    django模板語(yǔ)法學(xué)習(xí)之include示例詳解

    寫(xiě)過(guò) Web 程序的都對(duì) include 包含文件很熟悉,那么在 Django,include 又是怎么一個(gè)機(jī)制呢?下面這篇文章主要給大家介紹了關(guān)于django模板語(yǔ)法學(xué)習(xí)之include的相關(guān)資料,需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-12-12
  • Python tkinter三種布局實(shí)例詳解

    Python tkinter三種布局實(shí)例詳解

    這篇文章主要介紹了Python tkinter三種布局實(shí)例詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • pytorch中tensor轉(zhuǎn)換為float的實(shí)現(xiàn)示例

    pytorch中tensor轉(zhuǎn)換為float的實(shí)現(xiàn)示例

    本文主要介紹了pytorch中tensor轉(zhuǎn)換為float,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-03-03
  • 基于Python編寫(xiě)將文本轉(zhuǎn)換為語(yǔ)音的簡(jiǎn)易應(yīng)用

    基于Python編寫(xiě)將文本轉(zhuǎn)換為語(yǔ)音的簡(jiǎn)易應(yīng)用

    這篇文章主要介紹了如何使用Python編寫(xiě)一個(gè)簡(jiǎn)單的應(yīng)用程序,將文本轉(zhuǎn)換為語(yǔ)音,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以動(dòng)手嘗試一下
    2023-08-08
  • Python根據(jù)當(dāng)前日期取去年同星期日期

    Python根據(jù)當(dāng)前日期取去年同星期日期

    最近做項(xiàng)目,遇到這樣的業(yè)務(wù)開(kāi)發(fā)需求,需要對(duì)比當(dāng)前時(shí)間段和去年同星期的時(shí)間段的數(shù)據(jù),下面小編通過(guò)實(shí)例代碼給大家分享Python根據(jù)當(dāng)前日期取去年同星期日期,需要的朋友參考下
    2019-04-04
  • python庫(kù)pydantic數(shù)據(jù)驗(yàn)證和設(shè)置管理庫(kù)的用途

    python庫(kù)pydantic數(shù)據(jù)驗(yàn)證和設(shè)置管理庫(kù)的用途

    pydantic是一個(gè)用于數(shù)據(jù)驗(yàn)證和設(shè)置管理的Python庫(kù),它主要利用Python類型注解來(lái)定義數(shù)據(jù)模型的結(jié)構(gòu)和驗(yàn)證規(guī)則,本文給大家介紹python庫(kù)pydantic數(shù)據(jù)驗(yàn)證和設(shè)置管理庫(kù)的用途,感興趣的朋友跟隨小編一起看看吧
    2025-09-09
  • python實(shí)現(xiàn)邏輯回歸的方法示例

    python實(shí)現(xiàn)邏輯回歸的方法示例

    這篇文章主要介紹了python實(shí)現(xiàn)邏輯回歸的方法示例,這是機(jī)器學(xué)習(xí)課程的一個(gè)實(shí)驗(yàn),整理出來(lái)共享給大家,需要的朋友可以參考學(xué)習(xí),下來(lái)要一起看看吧。
    2017-05-05

最新評(píng)論

宾阳县| 双柏县| 蒙山县| 临澧县| 太和县| 双流县| 沈丘县| 格尔木市| 蒙城县| 马山县| 利川市| 蒙山县| 中方县| 石首市| 蒙阴县| 丹江口市| 揭阳市| 新乡市| 临沂市| 塔河县| 微博| 新竹县| 库车县| 万州区| 宁津县| 邢台县| 文山县| 安岳县| 镇赉县| 黔西县| 钟山县| 手机| 遂平县| 体育| 上思县| 赞皇县| 炎陵县| 民勤县| 德化县| 灵台县| 保德县|