下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第使用Pythonpandas讀取CSV文件應(yīng)該注意什么?4,趙盈盈,Female,2001-6-32,,學(xué)生,畫畫
5,鄭強(qiáng)強(qiáng),男,1991-03-05,南京(nanjing),律師,歷史-政治
如果一切正常的話,在JupyterNotebook中應(yīng)該顯示以下內(nèi)容:
文件編碼格式是最容易出錯(cuò)的問題之一。如果編碼格式不正確,就會(huì)完全讀取不出文件內(nèi)容,出現(xiàn)類似于以下的錯(cuò)誤,讓人完全不知所措:
---------------------------------------------------------------------------
UnicodeDecodeErrorTraceback(mostrecentcalllast)
ipython-input-6-8659adefcfa6inmodule
----1pd.read_csv('people.csv',encoding='gb2312')
C:\ProgramData\Anaconda3\lib\site-packages\pandas\io\parsers.pyinparser_f(filepath_or_buffer,sep,delimiter,header,names,index_col,usecols,squeeze,prefix,mangle_dupe_cols,dtype,engine,converters,true_values,false_values,skipinitialspace,skiprows,skipfooter,nrows,na_values,keep_default_na,na_filter,verbose,skip_blank_lines,parse_dates,infer_datetime_format,keep_date_col,date_parser,dayfirst,cache_dates,iterator,chunksize,compression,thousands,decimal,lineterminator,quotechar,quoting,doublequote,escapechar,comment,encoding,dialect,error_bad_lines,warn_bad_lines,delim_whitespace,low_memory,memory_map,float_precision)
683)
684
--685return_read(filepath_or_buffer,kwds)
686
687parser_f.__name__=name
C:\ProgramData\Anaconda3\lib\site-packages\pandas\io\parsers.pyin_read(filepath_or_buffer,kwds)
455
456#Createtheparser.
--457parser=TextFileReader(fp_or_buf,**kwds)
458
459ifchunksizeoriterator:
C:\ProgramData\Anaconda3\lib\site-packages\pandas\io\parsers.pyin__init__(self,f,engine,**kwds)
893self.options["has_index_names"]=kwds["has_index_names"]
894
--895self._make_engine(self.engine)
896
897defclose(self):
C:\ProgramData\Anaconda3\lib\site-packages\pandas\io\parsers.pyin_make_engine(self,engine)
1133def_make_engine(self,engine="c"):
1134ifengine=="c":
-1135self._engine=CParserWrapper(self.f,**self.options)
1136else:
1137ifengine=="python":
C:\ProgramData\Anaconda3\lib\site-packages\pandas\io\parsers.pyin__init__(self,src,**kwds)
1915kwds["usecols"]=self.usecols
1916
-1917self._reader=parsers.TextReader(src,**kwds)
1918self.unnamed_cols=self._reader.unnamed_cols
1919
pandas\_libs\parsers.pyxinpandas._libs.parsers.TextReader.__cinit__()
pandas\_libs\parsers.pyxinpandas._libs.parsers.TextReader._get_header()
UnicodeDecodeError:'gb2312'codeccan'tdecodebyte0x93inposition2:illegalmultibytesequence
目前對(duì)于中文而言,最常使用的有utf-8和gb2312兩種格式,只需要指定正確的編碼。在不知道編碼的情況下,只需要嘗試兩次即可。padas默認(rèn)的文件編碼格式是utf-8,所以如果出現(xiàn)以上錯(cuò)誤,只需使用encoding=gb2312再嘗試一下即可,如pd.read_csv(file,encoding='gb2312')。
空值是csv中也非常常見,比如以下內(nèi)容:
importpandasaspd
df=pd.read_csv('people.csv')
v1=df['出生地'][3]
print(v1,type(v1))
輸出為:
nanclass'float'
由此可見,空值也是有數(shù)據(jù)類型的,為float類型。
如何判斷空值有兩種方法,可以使用math.isnan(x)也可以使用isinstance(float)。我們知道,DateFrame對(duì)象是包括Series對(duì)象,而在一個(gè)Series對(duì)象中,所有的數(shù)據(jù)類型默認(rèn)是一樣的,所以如果其數(shù)據(jù)類型推斷為字符串(str),那么直接使用math.isnan(x)則會(huì)報(bào)錯(cuò)TypeError:mustberealnumber,notstr錯(cuò)誤,即必需為實(shí)數(shù),不能是字符串。所以,這時(shí)我們還需要使用isinstance(x,flaot)方法。
具體請(qǐng)看這個(gè)示例:
df.出生地=df.出生地.map(lambdax:'其他'ifisinstance(x,float)elsex)
df
方法1:直接使用labmda表達(dá)式
需要對(duì)數(shù)據(jù)列進(jìn)行復(fù)雜操作的時(shí)候,我們可以使用以下函數(shù)時(shí)行相應(yīng)的操作。
df=df.fillna('未知')
df.愛好=df.愛好.map(lambdax:x.split('')[0].split('-')[0].split(',')[0])
df
方法二:使用自定義函數(shù)
在進(jìn)行映射時(shí),如果操作比較簡單,可以使用字典的方式進(jìn)行數(shù)值映射映射(參見下文)。但是如果操作比較復(fù)雜,則需要使用函數(shù)進(jìn)行映射。請(qǐng)看這個(gè)示例,讀取到性別時(shí),內(nèi)容有‘m',‘M',‘Female'等內(nèi)容,現(xiàn)在需要其全部轉(zhuǎn)換為男或女:
defset_sex(s):
ifs.lower()=='m'ors.lower()=='male':
return'男'
elifs.lower()=='female':
return'女'
retur
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 校園食品安全管理制度
- 罕見腫瘤的腫瘤異質(zhì)性分析
- 2026天津中醫(yī)藥大學(xué)招聘58人備考題庫及參考答案詳解一套
- 2026廣東廣州大學(xué)招聘事業(yè)編制輔導(dǎo)員12人備考題庫(第一次)及答案詳解一套
- 2026天津市武清區(qū)“一區(qū)五園”面向社會(huì)招聘國企工作人員24人備考題庫及完整答案詳解
- 2026華東交通大學(xué)海外優(yōu)青項(xiàng)目全球引才備考題庫(含答案詳解)
- 同興會(huì)計(jì)事務(wù)所財(cái)務(wù)制度
- 佛協(xié)財(cái)務(wù)制度細(xì)則
- 汽車美容快修財(cái)務(wù)制度
- 農(nóng)村村委財(cái)務(wù)制度
- 2025-2026學(xué)年北京市昌平區(qū)高三(上期)期末考試英語試卷(含答案)
- 交通運(yùn)輸安全檢查與處理規(guī)范(標(biāo)準(zhǔn)版)
- UCL介紹教學(xué)課件
- 扁鵲凹凸脈法課件
- 2026年開封大學(xué)單招職業(yè)適應(yīng)性測試題庫及完整答案詳解1套
- 北京市2025北京市體育設(shè)施管理中心應(yīng)屆畢業(yè)生招聘2人筆試歷年參考題庫典型考點(diǎn)附帶答案詳解(3卷合一)2套試卷
- 建筑施工現(xiàn)場材料采購流程
- DB31∕T 1234-2020 城市森林碳匯計(jì)量監(jiān)測技術(shù)規(guī)程
- 園林綠化施工工藝及注意事項(xiàng)
- 2025年高中語文必修上冊(cè)《登泰山記》文言文對(duì)比閱讀訓(xùn)練(含答案)
- 2025年金蝶AI蒼穹平臺(tái)新一代企業(yè)級(jí)AI平臺(tái)報(bào)告-
評(píng)論
0/150
提交評(píng)論