??pandas用于讀取數(shù)據(jù)十分方便,包含很多直接將數(shù)據(jù)源讀取為DataFrame的函數(shù),下面以read_csv函數(shù)為例子說明一下部分參數(shù)的含義。
??pandas讀取csv格式函數(shù)參數(shù)比較多,一些參數(shù)上的設(shè)置就可以避免自己再去編寫一些異常處理或者重復(fù)的代碼邏輯了,比如其中第一個路徑參數(shù)可以直接放csv文件的網(wǎng)絡(luò)地址,很是方便。
pandas.read_csv(
filepath_or_buffer,
#1.文件handle;2.StringIO對象;3. 文件路徑string;
#4.URL,包括http、ftp、file,例如(file://localhost/path/to/table.csv
sep=', ',
#分隔符,需要注意的是engine='c'時候不能自動檢測分隔符,而engine='python'可以,用的是csv.Sniffer,
#長度大于1的分隔符按正則表達式處理,強制使用engine='python'
delimiter=None, #和sep參數(shù)類似
header='infer',
#被用作列名的行的編號,默認(rèn)參數(shù)的意思為:如果沒有names參數(shù),則認(rèn)為第一行認(rèn)為是列名,即header=0
#設(shè)置header=0會覆蓋下面的names參數(shù)。
names=None, #列名的list,會被去重處理
index_col=None,
usecols=None,
#類型為列表,列表元素可以是列名,也可以是列是第幾列的數(shù)字。列表中元素的順序不起作用。
squeeze=False,
prefix=None,
mangle_dupe_cols=True,
# 重復(fù)的列名將會被設(shè)置為‘X’, ‘X.1’, …’X.N’的形式,傳入False會使重復(fù)列名的數(shù)據(jù)被覆蓋掉。
dtype=None,
#列數(shù)據(jù)類型,傳入字典,{列名:類型},類型可以使用numpy的數(shù)據(jù)類型
engine=None,
#解析數(shù)據(jù)的引擎,注意選擇engine='c'時文件路徑中不要有中文,而且很多參數(shù)設(shè)置在選擇'c'時候不起作用。
converters=None,
true_values=None,
false_values=None,
skipinitialspace=False,
skiprows=None,
nrows=None,
#要讀多少行,超過內(nèi)存的大文件處理時可以用到
na_values=None,
keep_default_na=True,
na_filter=True,
verbose=False,
skip_blank_lines=True,
parse_dates=False,
infer_datetime_format=False,
keep_date_col=False,
date_parser=None,
dayfirst=False,
iterator=False,
chunksize=None,
compression='infer',
thousands=None,
decimal=b'.',
lineterminator=None,
quotechar='"',
quoting=0,
escapechar=None,
comment=None,
encoding=None,
dialect=None,
tupleize_cols=None,
error_bad_lines=True,
#由于字段數(shù)太多等引起異常默認(rèn)被拋出,而且沒有返回,可以設(shè)置為False,這樣就會扔掉這些錯誤的數(shù)據(jù),然后得到不包含錯誤行的DataFrame
warn_bad_lines=True,
skipfooter=0,
doublequote=True,
delim_whitespace=False,
low_memory=True,
memory_map=False,
float_precision=None)