欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python?pandas中read_csv參數(shù)示例詳解

 更新時(shí)間:2023年01月29日 16:01:33   作者:獨(dú)影月下酌酒  
使用pandas做數(shù)據(jù)處理的第一步就是讀取數(shù)據(jù),數(shù)據(jù)源可以來(lái)自于各種地方,csv文件便是其中之一,下面這篇文章主要給大家介紹了關(guān)于Python?pandas中read_csv參數(shù)詳解的相關(guān)資料,需要的朋友可以參考下

1.官網(wǎng)語(yǔ)法

pandas.read_csv(filepath_or_buffer, sep=NoDefault.no_default**,** delimiter=None**,** header='infer’, names=NoDefault.no_default**,** index_col=None**,** usecols=None**,** squeeze=False**,** prefix=NoDefault.no_default**,** mangle_dupe_cols=True**,** dtype=None**,** engine=None**,** converters=None**,** true_values=None**,** false_values=None**,** skipinitialspace=False**,** skiprows=None**,** skipfooter=0**,** nrows=None**,** 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**,** cache_dates=True**,** iterator=False**,** chunksize=None**,** compression='infer’, thousands=None**,** decimal=’.', lineterminator=None**,** quotechar=’"', quoting=0**,** doublequote=True**,** escapechar=None**,** comment=None**,** encoding=None**,** encoding_errors='strict’, dialect=None**,** error_bad_lines=None**,** warn_bad_lines=None**,** on_bad_lines=None**,** delim_whitespace=False**,** low_memory=True**,** memory_map=False**,** float_precision=None**,** storage_options=None**)**

read_csv()函數(shù)在pandas中用來(lái)讀取文件(逗號(hào)分隔符),并返回DataFrame。

2.參數(shù)詳解

2.1 filepath_or_buffer(文件)

注:不能為空

filepath_or_buffer: str, path object or file-like object

設(shè)置需要訪問(wèn)的文件的有效路徑。

可以是URL,可用URL類型包括:http, ftp, s3和文件。

對(duì)于多文件正在準(zhǔn)備中本地文件讀取實(shí)例:??/localhost/path/to/table.csv

# 本地相對(duì)路徑:
pd.read_csv('data/data.csv') # 注意目錄層級(jí)
pd.read_csv('data.csv') # 如果文件與代碼文件在同目錄下
pd.read_csv('data/my/my.data') # CSV 文件擴(kuò)展名不一定是 csv

# 本地絕對(duì)路徑:
pd.read_csv('/user/data/data.csv')

2.2 sep(分隔符)

sep: str, default ‘,'

? 指定分隔符。如果不指定參數(shù),則會(huì)嘗試使用逗號(hào)分隔。分隔符長(zhǎng)于一個(gè)字符并且不是‘\s+’,

將使用python的語(yǔ)法分析器。并且忽略數(shù)據(jù)中的逗號(hào)。正則表達(dá)式例子:’\r\t’

# 數(shù)據(jù)分隔轉(zhuǎn)化是逗號(hào), 如果是其他可以指定
pd.read_csv(data, sep='\t') # 制表符分隔 tab
pd.read_table(data) # read_table 默認(rèn)是制表符分隔 tab
pd.read_csv(data, sep='|') # 制表符分隔 tab
pd.read_csv(data,sep="(?<!a)\|(?!1)", engine='python') # 使用正則

2.3 delimiter(分隔符)

delimiter: str, default None

? 定界符,sep的別名。

2.4 header(表頭)

header: int, list of int, default ‘infer'

指定行數(shù)用來(lái)作為列名,數(shù)據(jù)開(kāi)始行數(shù)。

如果文件中沒(méi)有列名,則默認(rèn)為0,否則設(shè)置為None。如果明確設(shè)定header=0 就會(huì)替換掉原來(lái)存在

列名。

header參數(shù)可以是一個(gè)list例如:[0,1,3],這個(gè)list表示將文件中的這些行作為列標(biāo)題(意味著

每一列有多個(gè)標(biāo)題),介于中間的行將被忽略掉(例如本例中的2;本例中的數(shù)據(jù)1,2,4行將被作為多

級(jí)標(biāo)題出現(xiàn),第3行數(shù)據(jù)將被丟棄,dataframe的數(shù)據(jù)從第5行開(kāi)始)。

注意:如果skip_blank_lines=True 那么header參數(shù)忽略注釋行和空行,所以header=0表示第一

行數(shù)據(jù)而不是文件的第一行。

# 默認(rèn)系統(tǒng)會(huì)推斷,如果指定列名會(huì)被忽略
pd.read_csv(data, header=0) # 第一行
pd.read_csv(data, header=None) # 沒(méi)有表頭
pd.read_csv(data, header=[0,1,3]) # 多層索引 MultiIndex

2.5 names(列名)

names: array-like, optional

? 用于結(jié)果的列名列表,如果數(shù)據(jù)文件中沒(méi)有列標(biāo)題行,就需要執(zhí)行header=None。默認(rèn)列表中不

能出現(xiàn)重復(fù),除非設(shè)定參數(shù)mangle_dupe_cols=True。

pd.read_csv(data, names=['列1', '列2']) # 指定列名列表

2.6 index_col(索引列)

index_col: int, str, sequence of int / str, or False, default None

用作行索引的列編號(hào)或者列名,如果給定一個(gè)序列則有多個(gè)行索引。

如果文件不規(guī)則,行尾有分隔符,則可以設(shè)定index_col=False 來(lái)是的pandas不適用第一列作為行

索引。

# 默認(rèn)為 `None`, 不自動(dòng)識(shí)別索引
pd.read_csv(data, index_col=False) # 不再使用首列作為索引
pd.read_csv(data, index_col=0) # 第幾列是索引
pd.read_csv(data, index_col='年份') # 指定列名
pd.read_csv(data, index_col=['a','b']) # 多個(gè)索引
pd.read_csv(data, index_col=[0, 3]) # 按列索引指定多個(gè)索引

2.7 usecols(使用部分列)

usecols: list-like or callable, optional

返回一個(gè)數(shù)據(jù)子集,該列表中的值必須可以對(duì)應(yīng)到文件中的位置(數(shù)字可以對(duì)應(yīng)到指定的列)或者是

字符傳為文件中的列名。例如:usecols有效參數(shù)可能是 [0,1,2]或者是 [‘foo’, ‘bar’,

‘baz’]。使用這個(gè)參數(shù)可以加快加載速度并降低內(nèi)存消耗。

# 讀取部分列
pd.read_csv(data, usecols=[0,4,3]) # 按索引只讀取指定列,順序無(wú)關(guān)
pd.read_csv(data, usecols=['列1', '列5']) # 按列名,列名必須存在
# 指定列順序,其實(shí)是 df 的篩選功能
pd.read_csv(data, usecols=['列1', '列5'])[['列5', '列1']]
# 以下用 callable 方式可以巧妙指定順序, in 后邊的是我們要的順序
pd.read_csv(data, usecols=lambda x: x.upper() in ['COL3', 'COL1'])

2.8 squeeze(返回序列)

squeeze: bool, default False

如果文件值包含一列,則返回一個(gè)Series,如果是多個(gè)列依舊還是DataFrame。

# 只取一列會(huì)返回一個(gè) Series
pd.read_csv(data, usecols=[0], squeeze=True)
# 如果是兩列則還是 df
pd.read_csv(data, usecols=[0, 2], squeeze=True)

2.9 prefix(表頭前綴)

prefix: str, optional

在沒(méi)有列標(biāo)題時(shí),給列添加前綴。例如:添加‘X’ 成為 X0, X1, …

# 表頭為 c_0、c_2
pd.read_csv(data, prefix='c_', header=None)

2.10 mangle_dupe_cols(處理重復(fù)列名)

mangle_dupe_cols: bool, default True

重復(fù)的列,將‘X’…’X’表示為‘X.0’…’X.N’。如果設(shè)定為False則會(huì)將所有重名列覆蓋。

data = 'a,b,a\n0,1,2\n3,4,5'
pd.read_csv(StringIO(data), mangle_dupe_cols=True)
# 表頭為 a b a.1
# False 會(huì)報(bào) ValueError 錯(cuò)誤

2.11 dtype(數(shù)據(jù)類型)

dtype: Type name or dict of column -> type, optional

每列數(shù)據(jù)的數(shù)據(jù)類型。例如 {‘a’: np.float64, ‘b’: np.int32}

pd.read_csv(data, dtype=np.float64) # 所有數(shù)據(jù)均為此數(shù)據(jù)類型
pd.read_csv(data, dtype={'c1':np.float64, 'c2': str}) # 指定字段的類型
pd.read_csv(data, dtype=[datetime, datetime, str, float]) # 依次指定

2.12 engine(引擎)

engine: {‘c', ‘python'}, optional

Parser engine to use. The C engine is faster while the python engine is currently more feature-complete.

使用的分析引擎??梢赃x擇C或者是python。C引擎快,但是Python引擎功能更加完備。

2.13 converters(列數(shù)據(jù)處理)

converters: dict, optional

列轉(zhuǎn)換函數(shù)的字典。key可以是列名或者列的序號(hào)。

from io import StringIO
data = 'x,y\na,1\nb,2'
def foo(p):
    return p+'s'
# x 應(yīng)用函數(shù), y 使用 lambda
pd.read_csv(StringIO(data), converters={'x': foo,
                                        'y': lambda x: x*3})
# 輸出:
	x	y
0	as	111
1	bs	222
# 使用列索引
pd.read_csv(StringIO(data),
            converters={0: foo, 1: lambda x: x*3})

2.14 true_values(真值轉(zhuǎn)換)

true_values: list, optional

Values to consider as True 將指定的文本轉(zhuǎn)換為 True, 可以用列表指定多個(gè)值。

from io import StringIO
data = ('a,b,c\n1,Yes,2\n3,No,4')
pd.read_csv(StringIO(data),
            true_values=['Yes'], false_values=['No'])
# 輸出
	a	b	c
0	1	True	2
1	3	False	4

2.15 false_values(假值轉(zhuǎn)換)

false_values: list, optional

Values to consider as False將指定的文本轉(zhuǎn)換為 False, 可以用列表指定多個(gè)值。

2.16 skipinitialspace(忽略分隔符后的空白)

skipinitialspace: bool, default False

忽略分隔符后的空白(默認(rèn)為False,即不忽略).

data = 'a, b, c\n 1, 2, 3\n 4 ,5, 6'
pd.read_csv(StringIO(data), skipinitialspace=True)
# 輸出
	a	b	c
0	1	2	3
1	4	5	6

2.17 skiprows(跳過(guò)指定行)

skiprows: list-like, int or callable, optional

需要忽略的行數(shù)(從文件開(kāi)始處算起),或需要跳過(guò)的行號(hào)列表(從0開(kāi)始)。

# 跳過(guò)前2行
pd.read_csv(data, skiprows=2)
# 跳過(guò)前2行
pd.read_csv(data, skiprows=range(2))
# 跳過(guò)指定行
pd.read_csv(data, skiprows=[24,234,141])
# 跳過(guò)指定行
pd.read_csv(data, skiprows=np.array([2, 6, 11]))
# 隔行跳過(guò)
pd.read_csv(data, skiprows=lambda x: x % 2 != 0)

2.18 shipfooter(尾部跳過(guò))

skipfooter: int, default 0

從文件尾部開(kāi)始忽略。 (c引擎不支持)

pd.read_csv(filename, skipfooter=1) # 最后一行不加載

2.19 nrows(讀取行數(shù))

nrows: int, optional

需要讀取的行數(shù)(從文件頭開(kāi)始算起)。一般用于較大的數(shù)據(jù)文件

pd.read_csv(data, nrows=1000)

2.20 na_values(空值替換)

na_values: scalar, str, list-like, or dict, optional

一組用于替換NA/NaN的值。如果傳參,需要制定特定列的空值。默認(rèn)為‘1.#IND’, ‘1.#QNAN’, ‘N/A’, ‘NA’, ‘NULL’, ‘NaN’, ‘nan’`.

# 5 和 5.0 會(huì)被認(rèn)為 NaN
pd.read_csv(data, na_values=[5])
# ? 會(huì)被認(rèn)為 NaN
pd.read_csv(data, na_values='?')
# 空值為 NaN
pd.read_csv(data, keep_default_na=False, na_values=[""])
# 字符 NA 字符 0 會(huì)被認(rèn)為 NaN
pd.read_csv(data, keep_default_na=False, na_values=["NA", "0"])
# Nope 會(huì)被認(rèn)為 NaN
pd.read_csv(data, na_values=["Nope"])
# a、b、c 均會(huì)被認(rèn)為 NaN 等于 na_values=['a','b','c']
pd.read_csv(data, na_values='abc')
# 指定列的指定值會(huì)被認(rèn)為 NaN
pd.read_csv(data, na_values={'c':3, 1:[2,5]})

2.21 keep_fault_na(保留默認(rèn)空值)

keep_default_na: bool, default True

析數(shù)據(jù)時(shí)是否包含默認(rèn)的NaN值,是否自動(dòng)識(shí)別。

如果指定na_values參數(shù),并且keep_default_na=False,那么默認(rèn)的NaN將被覆蓋,否則添加。

# 不自動(dòng)識(shí)別空值
pd.read_csv(data, keep_default_na=False)
keep_default_nana_values邏輯
True指定na_values 的配置附加處理
True未指定自動(dòng)識(shí)別
False指定使用 na_values 的配置
False未指定不做處理

注:如果 na_filter 為 False (默認(rèn)是 True), 那么 keep_default_na 和 na_values parameters 均無(wú)效。

2.22 na_filter(丟失值檢查)

na_filter: bool, default True

是否檢查丟失值(空字符串或者是空值)。對(duì)于大文件來(lái)說(shuō)數(shù)據(jù)集中沒(méi)有空值,設(shè)定na_filter=False可以提升讀取速度。

# boolean, default True
pd.read_csv(data, na_filter=False) # 不檢查

2.23 verbose(解析信息)

verbose: bool, default False

是否打印各種解析器的輸出信息,例如:“非數(shù)值列中缺失值的數(shù)量”等。

# 可以看到解析信息
pd.read_csv(data, verbose=True)
# Tokenization took: 0.02 ms
# Type conversion took: 0.36 ms
# Parser memory cleanup took: 0.01 ms

2.24 skip_blank_lines(跳過(guò)空行)

skip_blank_lines: bool, default True

如果為T(mén)rue,則跳過(guò)空行;否則記為NaN。

# 不跳過(guò)空行
pd.read_csv(data, skip_blank_lines=False)

2.25 parse_dates(日期時(shí)間解析)

parse_dates: bool or list of int or names or list of lists or dict, default False
  • boolean. True -> 解析索引
  • list of ints or names. e.g. If [1, 2, 3] -> 解析1,2,3列的值作為獨(dú)立的日期列;
  • list of lists. e.g. If [[1, 3]] -> 合并1,3列作為一個(gè)日期列使用
  • dict, e.g. {‘foo’ : [1, 3]} -> 將1,3列合并,并給合并后的列起名為"foo"
pd.read_csv(data, parse_dates=True) # 自動(dòng)解析日期時(shí)間格式
pd.read_csv(data, parse_dates=['年份']) # 指定日期時(shí)間字段進(jìn)行解析
# 將 1、4 列合并解析成名為 時(shí)間的 時(shí)間類型列
pd.read_csv(data, parse_dates={'時(shí)間':[1,4]})

2.26 infer_datetime_format(自動(dòng)識(shí)別日期時(shí)間)

infer_datetime_format: bool, default False

如果設(shè)定為T(mén)rue并且parse_dates 可用,那么pandas將嘗試轉(zhuǎn)換為日期類型,如果可以轉(zhuǎn)換,轉(zhuǎn)換

方法并解析。在某些情況下會(huì)快5~10倍。

pd.read_csv(data, parse_dates=True, infer_datetime_format=True)

2.27 keep_date_col(保留被時(shí)間組合列)

keep_date_col: bool, default False

如果有多列解析成一個(gè)列,自動(dòng)會(huì)合并到新解析的列,去掉此列,如果設(shè)置為 True 則會(huì)保留。

pd.read_csv(data, parse_dates=[[1, 2], [1, 3]], keep_date_col=True)

2.28 date_parser(日期時(shí)間解析器)

date_parser: function, optional

用于解析日期的函數(shù),默認(rèn)使用dateutil.parser.parser來(lái)做轉(zhuǎn)換。Pandas嘗試使用三種不同的方

式解析,如果遇到問(wèn)題則使用下一種方式。

1.使用一個(gè)或者多個(gè)arrays(由parse_dates指定)作為參數(shù);

2.連接指定多列字符串作為一個(gè)列作為參數(shù);

3.每行調(diào)用一次date_parser函數(shù)來(lái)解析一個(gè)或者多個(gè)字符串(由parse_dates指定)作為參數(shù)。

# 指定時(shí)間解析庫(kù),默認(rèn)是 dateutil.parser.parser
date_parser=pd.io.date_converters.parse_date_time
date_parser=lambda x: pd.to_datetime(x, utc=True, format='%d%b%Y')
date_parser = lambda d: pd.datetime.strptime(d, '%d%b%Y')
pd.read_csv(data, parse_dates=['年份'], date_parser=date_parser)

2.29 dayfirst(日期日在前)

dayfirst: bool, default False

DD/MM格式的日期類型,如日期 2000-01-06 如果 dayfirst=True 則會(huì)轉(zhuǎn)換成 2000-06-01。

pd.read_csv(data, dayfirst=True, parse_dates=[0])

2.30 cache_dates(日期緩存)

cache_dates: bool, default True

如果為 True,則使用唯一的轉(zhuǎn)換日期緩存來(lái)應(yīng)用 datetime 轉(zhuǎn)換。 解析重復(fù)的日期字符串時(shí),尤其是帶有時(shí)區(qū)偏移的日期字符串時(shí),可能會(huì)大大提高速度。

pd.read_csv(data, cache_dates=False)

2.31 iterator(讀取文件對(duì)象)

iterator: bool, default False

返回一個(gè)TextFileReader 對(duì)象,以便逐塊處理文件。

pd.read_csv(data, iterator=True)

2.32 chunksize(文件塊)

chunksize: int, optional

文件塊的大小, See IO Tools docs for more informationon iterator and chunksize.

pd.read_csv(data, chunksize=100000)

# 分片處理大文件
df_iterator=pd.read_csv(file,chunksize=50000)
def process_dataframe(df):
    pass
    return processed_df

for index,df_tmp in enumerate(df_iterator):
    df_processed=process_dataframe(df_tmp)
    if index>0:
       df_processed.to_csv(path)
    else:
       df_processed.to_csv(path,mode='a',header=False)

2.33 compression(壓縮)

compression: {‘infer', ‘gzip', ‘bz2', ‘zip', ‘xz', None}, default ‘infer'

直接使用磁盤(pán)上的壓縮文件。如果使用infer參數(shù),則使用 gzip, bz2, zip或者解壓文件名中以‘.gz’, ‘.bz2’, ‘.zip’, or ‘xz’這些為后綴的文件,否則不解壓。如果使用zip,那么ZIP包中國(guó)必須只包含一個(gè)文件。設(shè)置為None則不解壓。

新版本0.18.1版本支持zip和xz解壓

pd.read_csv('sample.tar.gz', compression='gzip')

2.34 thousands(千分位分隔符)

thousands: str, optional

千分位分割符,如“,”或者“."

pd.read_csv('test.csv', thousands=',') # 逗號(hào)分隔

2.35 decimal(小數(shù)點(diǎn))

decimal: str, default ‘.'

字符中的小數(shù)點(diǎn) (例如:歐洲數(shù)據(jù)使用’,‘).

pd.read_csv(data, decimal=",")

2.36 lineterminator(行結(jié)束符)

lineterminator: str (length 1), optional

行分割符,只在C解析器下使用。

data = 'a,b,c~1,2,3~4,5,6'
pd.read_csv(StringIO(data), lineterminator='~')

2.37 quotechar(引號(hào))

quotechar: str (length 1), optional

引號(hào),用作標(biāo)識(shí)開(kāi)始和結(jié)束的字符,引號(hào)內(nèi)的分割符將被忽略。

pd.read_csv(file, quotechar = '"')

2.38 quoting(引號(hào)常量)

quoting: int or csv.QUOTE_* instance, default 0

控制csv中的引號(hào)常量。可選 QUOTE_MINIMAL (0), QUOTE_ALL (1), QUOTE_NONNUMERIC (2) or QUOTE_NONE (3)

import csv
pd.read_csv('input_file.csv', quoting=csv.QUOTE_NONE)

2.39 doublequote(雙引號(hào))

doublequote: bool, default True

雙引號(hào),當(dāng)單引號(hào)已經(jīng)被定義,并且quoting 參數(shù)不是QUOTE_NONE的時(shí)候,使用雙引號(hào)表示引號(hào)內(nèi)的元素作為一個(gè)元素使用。

import csv
pd.read_csv('data.csv', quotechar='"', doublequote=True, quoting=csv.QUOTE_NONNUMERIC)

2.40 escapechar(不受分隔符限制)

escapechar: str (length 1), optional

當(dāng)quoting 為QUOTE_NONE時(shí),指定一個(gè)字符使的不受分隔符限值。

pd.read_csv(StringIO(data), escapechar='\\', encoding='utf-8')

2.41 comment(注釋標(biāo)識(shí))

comment: str, optional

標(biāo)識(shí)著多余的行不被解析。如果該字符出現(xiàn)在行首,這一行將被全部忽略。這個(gè)參數(shù)只能是一個(gè)字符,空行(就像skip_blank_lines=True)注釋行被header和skiprows忽略一樣。例如如果指定comment=’#’ 解析‘#empty\na,b,c\n1,2,3’ 以header=0 那么返回結(jié)果將是以’a,b,c’作為header。

s = '# notes\na,b,c\n# more notes\n1,2,3'
pd.read_csv(StringIO(s), sep=',', comment='#', skiprows=1)

2.42 encoding(編碼)

encoding: str, optional

指定字符集類型,通常指定為’utf-8’. List of Python standard encodings

pd.read_csv('gairuo.csv', encoding='utf8')
pd.read_csv("gairuo.csv",encoding="gb2312") # 常見(jiàn)中文
# 其他常用編碼 ISO-8859-1 latin-1 gbk

2.43 encoding_errors

encoding_errors: str, optional, default “strict”

2.44 dialect

dialect: str or csv.Dialect, optional

如果沒(méi)有指定特定的語(yǔ)言,如果sep大于一個(gè)字符則忽略。具體查看csv.Dialect 文檔

import csv
csv.register_dialect(
    'mydialect',
    delimiter = ',',
    quotechar = '"',
    doublequote = True,
    skipinitialspace = True,
    lineterminator = '\r\n',
    quoting = csv.QUOTE_MINIMAL)

pd.read_csv("gr.csv", encoding="gbk", dialect='mydialect')

2.45 error_bad_lines(壞行處理)

error_bad_lines: bool, default None

如果一行包含太多的列,容易出現(xiàn)錯(cuò)誤,那么默認(rèn)不會(huì)返回DataFrame ,如果設(shè)置成false,那么會(huì)將"壞行"剔除(只能在C解析器下使用)。

pd.read_csv(StringIO(data), error_bad_lines=False)

2.46 warn_bad_lines(壞行警告)

warn_bad_lines: bool, default None

如果error_bad_lines =False,并且warn_bad_lines =True 那么所有的“bad lines”將會(huì)被輸出(只能在C解析器下使用)。

pd.read_csv(StringIO(data), warn_bad_lines=False)

2.47 on_bad_lines

on_bad_lines: {<!--{C}%3C!%2D%2D%20%2D%2D%3E-->‘error', ‘warn', ‘skip'}, default ‘error'

2.48 delim_whitespace(空格分隔符)

delim_whitespace: bool, default False

指定是否將空格(例如’‘或’\ t’)用作分隔符。 等效于設(shè)置sep =’\s+’。 如果此選項(xiàng)設(shè)置為T(mén)rue,則不應(yīng)該為delimiter參數(shù)傳遞任何內(nèi)容。

pd.read_csv(StringIO(data), delim_whitespace=False)

2.49 low_memory(低內(nèi)存)

low_memory: bool, default True

分塊加載到內(nèi)存,再低內(nèi)存消耗中解析。但是可能出現(xiàn)類型混淆。確保類型不被混淆需要設(shè)置為False。或者使用dtype 參數(shù)指定類型。注意使用chunksize 或者iterator 參數(shù)分塊讀入會(huì)將整個(gè)文件讀入到一個(gè)Dataframe,而忽略類型(只能在C解析器中有效)

pd.read_csv(StringIO(data), low_memory=False)

2.50 memory_map(內(nèi)存映射)

memory_map: bool, default False 

如果使用的文件在內(nèi)存內(nèi),那么直接map文件使用。使用這種方式可以避免文件再次進(jìn)行IO操作。

pd.read_csv('gr.csv', low_memory=False)

2.51 float_precison(高精度轉(zhuǎn)換)

float_precision:str, optional

指定C引擎應(yīng)使用哪個(gè)轉(zhuǎn)換器進(jìn)行浮點(diǎn)運(yùn)算,對(duì)于普通轉(zhuǎn)換器,選項(xiàng)為“None”或“high”,原始低精度轉(zhuǎn)換器的“legacy”,以及 round-trip 換器的“ round_trip”。

val = '0.3066101993807095471566981359501369297504425048828125'
data = 'a,b,c\n1,2,{0}'.format(val)
abs(pd.read_csv(StringIO(data), engine='c',float_precision='high')['c'][0] - float(val))

2.52 storage_options(存儲(chǔ)選項(xiàng))

storage_options:dict, optional

注:pandas 1.2.0 新增。

fsspec 還允許使用復(fù)雜的URL,以訪問(wèn)壓縮檔案中的數(shù)據(jù),文件的本地緩存等。 要在本地緩存上面的示例,可以增加參數(shù)配置:

#  Amazon S3, 安裝支持庫(kù) fsspec
pd.read_csv(
    "simplecache::s3://ncei-wcsd-archive/data/processed/SH1305/18kHz/"
    "SaKe2013-D20130523-T080854_to_SaKe2013-D20130523-T085643.csv",
    storage_options={"s3": {"anon": True}},
)

指定“anon”參數(shù)用于實(shí)現(xiàn)的“ s3”部分,而不是用于緩存實(shí)現(xiàn)。 請(qǐng)注意,僅在會(huì)話期間緩存到臨時(shí)目錄,但是您也可以指定永久存儲(chǔ)。更多參數(shù)可參考fsspec文檔

注:pandas 1.3.0 新增。

從fsspec未處理的遠(yuǎn)程URL(例如HTTP和HTTPS)讀取時(shí),傳遞到存儲(chǔ)的字典將用于創(chuàng)建請(qǐng)求中包含的頭()。這可用于控制用戶代理標(biāo)頭(User-Agent header)或發(fā)送其他自定義標(biāo)頭。例如:

headers = {"User-Agent": "pandas"}

df = pd.read_csv(
    "https://download.bls.gov/pub/time.series/cu/cu.item",
    sep="\t",
    storage_options=headers
)

3.返回值

DataFrame or TextParser

?  A comma-separated values (csv) file is returned as two-dimensional data structure with labeled axes.

參考鏈接:

1.https://www.gairuo.com/p/pandas-read-csv

總結(jié)

到此這篇關(guān)于Python pandas中read_csv參數(shù)詳解的文章就介紹到這了,更多相關(guān)pandas read_csv參數(shù)詳解內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python使用Selenium模塊模擬瀏覽器抓取斗魚(yú)直播間信息示例

    Python使用Selenium模塊模擬瀏覽器抓取斗魚(yú)直播間信息示例

    這篇文章主要介紹了Python使用Selenium模塊模擬瀏覽器抓取斗魚(yú)直播間信息,涉及Python基于Selenium模塊的模擬瀏覽器登陸、解析、抓取信息,以及MongoDB數(shù)據(jù)庫(kù)的連接、寫(xiě)入等相關(guān)操作技巧,需要的朋友可以參考下
    2018-07-07
  • Python多線程使用方法詳細(xì)講解

    Python多線程使用方法詳細(xì)講解

    這篇文章主要介紹了Python中的多線程實(shí)例,一個(gè)CPU,將時(shí)間切成一片一片的,CPU輪轉(zhuǎn)著去處理一件一件的事情,到了規(guī)定的時(shí)間片就處理下一件事情,更多的相關(guān)內(nèi)容需要的小伙伴可以參考下面文章詳細(xì)
    2022-10-10
  • Django自定義權(quán)限及用戶分組

    Django自定義權(quán)限及用戶分組

    這篇文章主要為大家介紹了Django登錄權(quán)限及分組模板使用權(quán)限,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • pytorch中的 .view()函數(shù)的用法介紹

    pytorch中的 .view()函數(shù)的用法介紹

    這篇文章主要介紹了pytorch中的 .view()函數(shù)的用法,主要介紹兩種方法手動(dòng)調(diào)整size和自動(dòng)調(diào)整size,下面具體方法分析需要的小伙伴可以參考一下
    2022-03-03
  • Python基本運(yùn)算幾何運(yùn)算處理數(shù)字圖像示例

    Python基本運(yùn)算幾何運(yùn)算處理數(shù)字圖像示例

    這篇文章主要介紹了Python基本運(yùn)算,同個(gè)幾個(gè)幾何運(yùn)算處理數(shù)字圖像示例來(lái)為大家詳細(xì)講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-09-09
  • 使用APScheduler3.0.1 實(shí)現(xiàn)定時(shí)任務(wù)的方法

    使用APScheduler3.0.1 實(shí)現(xiàn)定時(shí)任務(wù)的方法

    今天小編就為大家分享一篇使用APScheduler3.0.1 實(shí)現(xiàn)定時(shí)任務(wù)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-07-07
  • Python的索引與切片原來(lái)該這樣理解

    Python的索引與切片原來(lái)該這樣理解

    這篇文章主要為大家詳細(xì)介紹了Python的索引與切片,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-02-02
  • python原類、類的創(chuàng)建過(guò)程與方法詳解

    python原類、類的創(chuàng)建過(guò)程與方法詳解

    在本篇文章里小編給各位分享了關(guān)于python原類、類的創(chuàng)建過(guò)程與方法的相關(guān)知識(shí)點(diǎn)內(nèi)容,有興趣的朋友們跟著學(xué)習(xí)參考下。
    2019-07-07
  • Ruby元編程基礎(chǔ)學(xué)習(xí)筆記整理

    Ruby元編程基礎(chǔ)學(xué)習(xí)筆記整理

    元編程Metaprogramming是指編寫(xiě)能夠操作其他程序的程序,例如C語(yǔ)言中的宏,是編程中的一項(xiàng)高級(jí)技巧,這里我們立足基礎(chǔ),來(lái)看一下Ruby元編程基礎(chǔ)學(xué)習(xí)筆記整理.
    2016-07-07
  • Python二叉樹(shù)定義與遍歷方法實(shí)例分析

    Python二叉樹(shù)定義與遍歷方法實(shí)例分析

    這篇文章主要介紹了Python二叉樹(shù)定義與遍歷方法,結(jié)合實(shí)例形式分析了二叉樹(shù)的概念、原理及Python定義、遍歷二叉樹(shù)相關(guān)操作技巧,需要的朋友可以參考下
    2018-05-05

最新評(píng)論