python pandas消除空值和空格以及 Nan數(shù)據(jù)替換方法
在人工采集數(shù)據(jù)時(shí),經(jīng)常有可能把空值和空格混在一起,一般也注意不到在本來(lái)為空的單元格里加入了空格。這就給做數(shù)據(jù)處理的人帶來(lái)了麻煩,因?yàn)榭罩岛涂崭穸际谴淼臒o(wú)數(shù)據(jù),而pandas中Series的方法notnull()會(huì)把有空格的數(shù)據(jù)也納入進(jìn)來(lái),這樣就不能完整地得到我們想要的數(shù)據(jù)了,這里給出一個(gè)簡(jiǎn)單的方法處理該問(wèn)題。
方法1:
既然我們認(rèn)為空值和空格都代表無(wú)數(shù)據(jù),那么可以先得到這兩種情況下的布爾數(shù)組。
這里,我們的DataFrame類型的數(shù)據(jù)集為df,其中有一個(gè)變量VIN,那么取得空值和空格的布爾數(shù)組為NONE_VIN。然后通過(guò)該布爾數(shù)組,就能得到我們要的數(shù)據(jù)了
NONE_VIN = (df["VIN"].isnull()) | (df["VIN"].apply(lambda x: str(x).isspace())) df_null = df[NONE_VIN] df_not_null = df[~NONE_VIN]
方法2:
直接使用Series的.apply方法來(lái)修改變量VIN中的每個(gè)值。如果發(fā)現(xiàn)是空格,就返回Nan,否則就返回原值。
df["VIN"]=df["VIN"].apply(lambda x: np.NaN if str(x).isspace() else x) df_null = df[df["VIN"].isnull()] df_not_null = df[df["VIN"].notnull()]
將dataframe中的NaN替換成希望的值
import pandas as pd
df1 = pd.DataFrame([{'col1':'a', 'col2':1}, {'col1':'b', 'col2':2}])
df2 = pd.DataFrame([{'col1':'a', 'col3':11}, {'col1':'c', 'col3':33}])
data = pd.merge(left=df1, right=df2, how='left', left_on='col1', right_on='col1')
print data
# 將NaN替換為None
print data.where(data.notnull(), None)
輸出結(jié)果:
col1 col2 col3 0 a 1 11 1 b 2 NaN col1 col2 col3 0 a 1 11 1 b 2 None
總結(jié):
方法1的思路就是直接判定是否為空格,把空格納入到選擇中來(lái)。方法2的思路是先把空格轉(zhuǎn)換為NaN,然后正常使用.isnull()或.notnull()來(lái)得到我們想要的數(shù)據(jù)。
以上這篇python pandas消除空值和空格以及 Nan數(shù)據(jù)替換方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
對(duì)python多線程SSH登錄并發(fā)腳本詳解
今天小編就為大家分享一篇對(duì)python多線程SSH登錄并發(fā)腳本詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-02-02
Django rest framework基本介紹與代碼示例
這篇文章主要介紹了Django rest framework基本介紹與代碼示例,簡(jiǎn)單敘述了rest framework的一些用處,可選擇的相關(guān)軟件包,然后分享了一個(gè)簡(jiǎn)單的模型支持的API的例子,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01
selenium 安裝與chromedriver安裝的方法步驟
這篇文章主要介紹了selenium 安裝與chromedriver安裝的方法步驟,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-06-06
pycharm配置SSH遠(yuǎn)程連接服務(wù)器詳細(xì)步驟(0基礎(chǔ)詳細(xì)版)
PyCharm是一款流行的Python集成開(kāi)發(fā)環(huán)境(IDE),提供了遠(yuǎn)程連接云服務(wù)器的功能,使得開(kāi)發(fā)者可以更加便捷地進(jìn)行遠(yuǎn)程開(kāi)發(fā)和調(diào)試,這篇文章主要給大家介紹了關(guān)于pycharm配置SSH遠(yuǎn)程連接服務(wù)器的詳細(xì)步驟,需要的朋友可以參考下2024-07-07
ubuntu16.04制作vim和python3的開(kāi)發(fā)環(huán)境
本文給大家介紹的是在ubuntu系統(tǒng)下制作python3開(kāi)發(fā)環(huán)境的詳細(xì)步驟,非常的實(shí)用,有需要的小伙伴可以參考下2018-09-09
解決keras使用cov1D函數(shù)的輸入問(wèn)題
這篇文章主要介紹了解決keras使用cov1D函數(shù)的輸入問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06
詳解如何使用Python的Plotly庫(kù)進(jìn)行交互式圖形可視化
Python中有許多強(qiáng)大的工具和庫(kù)可用于創(chuàng)建交互式圖形,其中之一就是Plotly庫(kù),Plotly庫(kù)提供了豐富的功能和靈活的接口,使得創(chuàng)建各種類型的交互式圖形變得簡(jiǎn)單而直觀,本文將介紹如何使用Plotly庫(kù)來(lái)創(chuàng)建交互式圖形,需要的朋友可以參考下2024-05-05
Python企業(yè)編碼生成系統(tǒng)之系統(tǒng)主要函數(shù)設(shè)計(jì)詳解
這篇文章主要介紹了Python企業(yè)編碼生成系統(tǒng)之系統(tǒng)主要函數(shù)設(shè)計(jì),涉及目錄操作、文件讀寫、驗(yàn)證判斷、編碼輸出等功能實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-07-07

