濮阳杆衣贸易有限公司

主頁 > 知識庫 > Pandas剔除混合數(shù)據(jù)中非數(shù)字的數(shù)據(jù)操作

Pandas剔除混合數(shù)據(jù)中非數(shù)字的數(shù)據(jù)操作

熱門標(biāo)簽:西藏智能外呼系統(tǒng)五星服務(wù) 在哪里辦理400電話號碼 400電話申請服務(wù)商選什么 工廠智能電話機器人 千陽自動外呼系統(tǒng) 平頂山外呼系統(tǒng)免費 原裝電話機器人 清遠(yuǎn)360地圖標(biāo)注方法 江蘇客服外呼系統(tǒng)廠家

我們?nèi)粘D玫降臄?shù)據(jù),指標(biāo)字段有時會混入非數(shù)字的數(shù)據(jù),這時候會影響我們的操作

name height
Hang 180
Ben 145
Cho notknow
XIn 189

比如read_csv讀入時,該列會以object形式讀入,也不能直接進(jìn)行計算,不然會出現(xiàn)如unsupported operand type(s) for +: 'float' and 'str'的錯誤

這時候就需要進(jìn)行數(shù)據(jù)預(yù)處理,清除掉指標(biāo)值中非數(shù)字的數(shù)據(jù),這里我以2012_FederalElectionCommission_Database數(shù)據(jù)為例。

首先讀入數(shù)據(jù),可以發(fā)現(xiàn)提示:Columns (6) have mixed types,這里Columns (6)是指標(biāo)值混有字符串格式數(shù)據(jù)

fec = pd.read_csv('P00000001-ALL.csv')
D:\SOFTWARE\Anaconda\lib\site-packages\IPython\core\interactiveshell.py:2717: DtypeWarning: Columns (6) have mixed types. Specify dtype option on import or set low_memory=False.
 interactivity=interactivity, compiler=compiler, result=result)
#先使用str打開數(shù)據(jù)
fec = pd.read_csv('P00000001-ALL.csv',dtype={'contbr_zip':str})
 
#然后使用str函數(shù)isdigit()判斷單元格是否全為數(shù)字
 
fec_isnum=fec.iloc[:,6].str.isdigit()
 
#得到使用bool索引把全為數(shù)字的表格cleaned
 
cleaned = fec[fec_isnum].copy()

補充:pandas如何去掉、過濾數(shù)據(jù)集中的某些值或者某些行?

在進(jìn)行數(shù)據(jù)分析與清理中,我們可能常常需要在數(shù)據(jù)集中去掉某些異常值。具體來說,看看下面的例子。

0.導(dǎo)入我們需要使用的包

import pandas as pd

pandas是很常用的數(shù)據(jù)分析,數(shù)據(jù)處理的包。anaconda已經(jīng)有這個包了,純凈版python的可以自行pip安裝。

1.去掉某些具體值

數(shù)據(jù)集df中,對于屬性appPlatform(最后一列),我們想刪除掉取值為2的那些樣本。

如何做?非常簡單。

import pandas as pd
df[(True-df['appPlatform'].isin([2]))]

當(dāng)然,有時候我們需要去掉不止一個值,這個時候只需要在isin([])的列表中添加。更具體來說,例如,對于appID這個屬性,我們想去掉appID=278和appID=382的樣本。

df[(True-df['appID'].isin([278,382]))]

另外,我們有時候并不只是考慮某一列,還需要考慮另外若干列的情況。例如,我們需要過濾掉appPlatform=2而且appID=278和appID=382的樣本呢?非常簡單。

df[(True-df['appID'].isin([278,382]))(True-df['appPlatform'].isin([2]))]

其實,在這里我們看到,就是由兩部分組成的,第一部分就是appID中等于278和382的,另外一部分就是appPlatform中等于2的。兩者取邏輯關(guān)系 與()

2.過濾掉某個范圍的值

上面我們是了解了如何取掉某個具體值,下面,我們要看看如何過濾掉某個范圍的值。

對于數(shù)據(jù)集df,我們想過濾掉creativeID(第一列)中ID值大于10000的樣本。

df[df['creativeID']=10000]

另外,如果要考慮多列的話,其實和上面一樣,將兩種情況做邏輯與()就可以,不過值得注意的是,每個條件要用括號()括起來。

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • pandas中的數(shù)據(jù)去重處理的實現(xiàn)方法
  • 詳解pandas刪除缺失數(shù)據(jù)(pd.dropna()方法)
  • python pandas消除空值和空格以及 Nan數(shù)據(jù)替換方法

標(biāo)簽:股票 錦州 安慶 日照 隨州 白城 天水 西安

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Pandas剔除混合數(shù)據(jù)中非數(shù)字的數(shù)據(jù)操作》,本文關(guān)鍵詞  Pandas,剔除,混合,數(shù)據(jù),中非,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Pandas剔除混合數(shù)據(jù)中非數(shù)字的數(shù)據(jù)操作》相關(guān)的同類信息!
  • 本頁收集關(guān)于Pandas剔除混合數(shù)據(jù)中非數(shù)字的數(shù)據(jù)操作的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    寿阳县| 广宗县| 阳新县| 博兴县| 利津县| 东明县| 普兰店市| 延庆县| 礼泉县| 景德镇市| 绥化市| 丹棱县| 恭城| 瑞昌市| 揭西县| 前郭尔| 泸溪县| 大城县| 北安市| 建德市| 蒙城县| 鹤山市| 拉孜县| 正镶白旗| 南安市| 德州市| 金溪县| 交口县| 加查县| 南宁市| 丰县| 互助| 曲沃县| 涡阳县| 常德市| 山阳县| 罗定市| 花莲市| 徐州市| 东兴市| 大理市|