name | height |
Hang | 180 |
Ben | 145 |
Cho | notknow |
XIn | 189 |
比如read_csv讀入時(shí),該列會(huì)以object形式讀入,也不能直接進(jìn)行計(jì)算,不然會(huì)出現(xiàn)如unsupported operand type(s) for +: 'float' and 'str'的錯(cuò)誤
這時(shí)候就需要進(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打開(kāi)數(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()
補(bǔ)充:pandas如何去掉、過(guò)濾數(shù)據(jù)集中的某些值或者某些行?
在進(jìn)行數(shù)據(jù)分析與清理中,我們可能常常需要在數(shù)據(jù)集中去掉某些異常值。具體來(lái)說(shuō),看看下面的例子。
import pandas as pd
pandas是很常用的數(shù)據(jù)分析,數(shù)據(jù)處理的包。anaconda已經(jīng)有這個(gè)包了,純凈版python的可以自行pip安裝。
數(shù)據(jù)集df中,對(duì)于屬性appPlatform(最后一列),我們想刪除掉取值為2的那些樣本。
如何做?非常簡(jiǎn)單。
import pandas as pd df[(True-df['appPlatform'].isin([2]))]
當(dāng)然,有時(shí)候我們需要去掉不止一個(gè)值,這個(gè)時(shí)候只需要在isin([])的列表中添加。更具體來(lái)說(shuō),例如,對(duì)于appID這個(gè)屬性,我們想去掉appID=278和appID=382的樣本。
df[(True-df['appID'].isin([278,382]))]
另外,我們有時(shí)候并不只是考慮某一列,還需要考慮另外若干列的情況。例如,我們需要過(guò)濾掉appPlatform=2而且appID=278和appID=382的樣本呢?非常簡(jiǎn)單。
df[(True-df['appID'].isin([278,382]))(True-df['appPlatform'].isin([2]))]
其實(shí),在這里我們看到,就是由兩部分組成的,第一部分就是appID中等于278和382的,另外一部分就是appPlatform中等于2的。兩者取邏輯關(guān)系 與()
上面我們是了解了如何取掉某個(gè)具體值,下面,我們要看看如何過(guò)濾掉某個(gè)范圍的值。
對(duì)于數(shù)據(jù)集df,我們想過(guò)濾掉creativeID(第一列)中ID值大于10000的樣本。
df[df['creativeID']=10000]
另外,如果要考慮多列的話,其實(shí)和上面一樣,將兩種情況做邏輯與()就可以,不過(guò)值得注意的是,每個(gè)條件要用括號(hào)()括起來(lái)。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
標(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)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。