成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

用Pandas讀取CSV,看這篇就夠了

大數(shù)據(jù) 數(shù)據(jù)分析
通過(guò)本文的介紹,我們了解了讀取CSV文件的一些參數(shù)的功能,也了解了在讀取CSV文件時(shí)可以做一些初步的數(shù)據(jù)整理工作。

 

01 語(yǔ)法

基本語(yǔ)法如下,pd為導(dǎo)入Pandas模塊的別名: 

  1. pd.read_csv(filepath_or_buffer: Union[str, pathlib.Path, IO[~AnyStr]],  
  2.             sep=','delimiter=Noneheader='infer'names=Noneindex_col=None 
  3.             usecols=Nonesqueeze=Falseprefix=Nonemangle_dupe_cols=True 
  4.             dtype=Noneengine=Noneconverters=Nonetrue_values=None 
  5.             false_values=Noneskipinitialspace=Falseskiprows=None 
  6.             skipfooter=0nrows=Nonena_values=Nonekeep_default_na=True 
  7.             na_filter=Trueverbose=Falseskip_blank_lines=True 
  8.             parse_dates=Falseinfer_datetime_format=False 
  9.             keep_date_col=Falsedate_parser=Nonedayfirst=False 
  10.             cache_dates=Trueiterator=Falsechunksize=None 
  11.             compression='infer'thousands=None, decimal: str = '.' 
  12.             lineterminator=Nonequotechar='"'quoting=0 
  13.             doublequote=Trueescapechar=Nonecomment=None 
  14.             encoding=Nonedialect=Noneerror_bad_lines=True 
  15.             warn_bad_lines=Truedelim_whitespace=False 
  16.             low_memory=Truememory_map=Falsefloat_precision=None

一般情況下,會(huì)將讀取到的數(shù)據(jù)返回一個(gè)DataFrame,當(dāng)然按照參數(shù)的要求會(huì)返回指定的類型。

02 數(shù)據(jù)內(nèi)容

filepath_or_buffer為第一個(gè)參數(shù),沒(méi)有默認(rèn)值,也不能為空,根據(jù)Python的語(yǔ)法,第一個(gè)參數(shù)傳參時(shí)可以不寫(xiě)參數(shù)名。可以傳文件路徑: 

  1. # 支持文件路徑或者文件緩沖對(duì)象  
  2. # 本地相對(duì)路徑  
  3. pd.read_csv('data/data.csv') # 注意目錄層級(jí)  
  4. pd.read_csv('data.csv') # 如果文件與代碼文件在同一目錄下  
  5. pd.read_csv('data/my/my.data') # CSV文件的擴(kuò)展名不一定是.csv  
  6. # 本地絕對(duì)路徑  
  7. pd.read_csv('/user/gairuo/data/data.csv')  
  8. # 使用URL  
  9. pd.read_csv('https://www.gairuo.com/file/data/dataset/GDP-China.csv') 

需要注意的是,Mac中和Windows中路徑的寫(xiě)法不一樣,上例是Mac中的寫(xiě)法,Windows中的相對(duì)路徑和絕對(duì)路徑需要分別換成類似'data\data.csv'和'E: \data\data.csv'的形式。另外,路徑盡量不要使用中文,否則程序容易報(bào)錯(cuò),這意味著你存放數(shù)據(jù)文件的目錄要盡量用英文命名。

可以傳數(shù)據(jù)字符串,即CSV中的數(shù)據(jù)字符以字符串形式直接傳入: 

  1. from io import StringIO  
  2. data = ('col1,col2,col3\n'  
  3.         'a,b,1\n'  
  4.         'a,b,2\n'  
  5.         'c,d,3')  
  6. pd.read_csv(StringIO(data))  
  7. pd.read_csv(StringIO(data), dtype=object

也可以傳入字節(jié)數(shù)據(jù): 

  1. from io import BytesIO  
  2. data = (b'word,length\n'  
  3.         b'Tr\xc3\xa4umen,7\n'  
  4.         b'Gr\xc3\xbc\xc3\x9fe,5')  
  5. pd.read_csv(BytesIO(data)) 

03 分隔符

sep參數(shù)是字符型的,代表每行數(shù)據(jù)內(nèi)容的分隔符號(hào),默認(rèn)是逗號(hào),另外常見(jiàn)的還有制表符(\t)、空格等,根據(jù)數(shù)據(jù)的實(shí)際情況傳值。 

  1. # 數(shù)據(jù)分隔符默認(rèn)是逗號(hào),可以指定為其他符號(hào)  
  2. pd.read_csv(data, sep='\t') # 制表符分隔tab  
  3. pd.read_table(data) # read_table 默認(rèn)是制表符分隔tab  
  4. pd.read_csv(data, sep='|') # 制表符分隔tab  
  5. pd.read_csv(data,sep="(?<!a)\|(?!1)"engine='python') # 使用正則表達(dá)式 

pd.read_csv還提供了一個(gè)參數(shù)名為delimiter的定界符,這是一個(gè)備選分隔符,是sep的別名,效果和sep一樣。如果指定該參數(shù),則sep參數(shù)失效。

04 表頭

header參數(shù)支持整型和由整型組成的列表,指定第幾行是表頭,默認(rèn)會(huì)自動(dòng)推斷把第一行作為表頭。 

  1. pd.read_csv(data, header=0) # 第一行  
  2. pd.read_csv(data, header=None) # 沒(méi)有表頭  
  3. pd.read_csv(data, header=[0,1,3]) # 多層索引MultiIndex 
  •  注意:如果skip_blank_lines=True,header參數(shù)將忽略空行和注釋行, 因此header=0表示第一行數(shù)據(jù)而非文件的第一行。

05 列名

names用來(lái)指定列的名稱,它是一個(gè)類似列表的序列,與數(shù)據(jù)一一對(duì)應(yīng)。如果文件不包含列名,那么應(yīng)該設(shè)置header=None,列名列表中不允許有重復(fù)值。 

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

06 索引

index_col用來(lái)指定索引列,可以是行索引的列編號(hào)或者列名,如果給定一個(gè)序列,則有多個(gè)行索引。Pandas不會(huì)自動(dòng)將第一列作為索引,不指定時(shí)會(huì)自動(dòng)使用以0開(kāi)始的自然索引。 

  1. # 支持int、str、int序列、str序列、False,默認(rèn)為None  
  2. pd.read_csv(data, index_col=False) # 不再使用首列作為索引  
  3. pd.read_csv(data, index_col=0) # 第幾列是索引  
  4. pd.read_csv(data, index_col='年份') # 指定列名  
  5. pd.read_csv(data, index_col=['a','b']) # 多個(gè)索引  
  6. pd.read_csv(data, index_col=[0, 3]) # 按列索引指定多個(gè)索引 

07 使用部分列

如果只使用數(shù)據(jù)的部分列,可以用usecols來(lái)指定,這樣可以加快加載速度并降低內(nèi)存消耗。 

  1. # 支持類似列表的序列和可調(diào)用對(duì)象  
  2. # 讀取部分列  
  3. pd.read_csv(data, usecols=[0,4,3]) # 按索引只讀取指定列,與順序無(wú)關(guān)  
  4. pd.read_csv(data, usecols=['列1', '列5']) # 按列名,列名必須存在  
  5. # 指定列順序,其實(shí)是df的篩選功能  
  6. pd.read_csv(data, usecols=['列1', '列5'])[['列5', '列1']]  
  7. # 以下用callable方式可以巧妙指定順序,in后面的是我們要的順序  
  8. pd.read_csv(data, usecols=lambda x: x.upper() in ['COL3', 'COL1']) 

08 返回序列

將squeeze設(shè)置為T(mén)rue,如果文件只包含一列,則返回一個(gè)Series,如果有多列,則還是返回DataFrame。 

  1. # 布爾型,默認(rèn)為False  
  2. # 下例只取一列,會(huì)返回一個(gè)Series  
  3. pd.read_csv(data, usecols=[0], squeeze=True 
  4. # 有兩列則還是df  
  5. pd.read_csv(data, usecols=[0, 2], squeeze=True

09 表頭前綴

如果原始數(shù)據(jù)沒(méi)有列名,可以指定一個(gè)前綴加序數(shù)的名稱,如n0、n1,通過(guò)prefix參數(shù)指定前綴。 

  1. # 格式為字符型str  
  2. # 表頭為c_0、c_2  
  3. pd.read_csv(data, prefix='c_'header=None

10 處理重復(fù)列名

如果該參數(shù)為T(mén)rue,當(dāng)列名有重復(fù)時(shí),解析列名將變?yōu)閄, X.1, …, X.N,而不是X, …, X。如果該參數(shù)為False,那么當(dāng)列名中有重復(fù)時(shí),前列將會(huì)被后列覆蓋。 

  1. # 布爾型,默認(rèn)為T(mén)rue  
  2. data = 'a,b,a\n0,1,2\n3,4,5'  
  3. pd.read_csv(StringIO(data), mangle_dupe_cols=True 
  4. # 表頭為a b a.1  
  5. # False會(huì)報(bào)ValueError錯(cuò)誤 

11 數(shù)據(jù)類型 

  1. dtype可以指定各數(shù)據(jù)列的數(shù)據(jù)類型。  
  2. # 傳入類型名稱,或者以列名為鍵、以指定類型為值的字典  
  3. pd.read_csv(data, dtype=np.float64) # 所有數(shù)據(jù)均為此數(shù)據(jù)類型  
  4. pd.read_csv(data, dtype={'c1':np.float64, 'c2': str}) # 指定字段的類型  
  5. pd.read_csv(data, dtype=[datetime, datetime, str, float]) # 依次指定 

12 引擎

使用的分析引擎可以選擇C或Python。C語(yǔ)言的速度最快,Python語(yǔ)言的功能最為完善,一般情況下,不需要另行指定。 

  1. # 格式為engine=None,其中可選值有{'c', 'python'}  
  2. pd.read_csv(data, engine='c'

13 列數(shù)據(jù)處理

使用converters參數(shù)對(duì)列的數(shù)據(jù)進(jìn)行轉(zhuǎn)換,參數(shù)中指定列名與針對(duì)此列的處理函數(shù),最終以字典的形式傳入,字典的鍵可以是列名或者列的序號(hào)。 

  1. # 字典格式,默認(rèn)為None  
  2. data = 'x,y\na,1\nb,2'  
  3. def foo(p):  
  4.     return p+'s'  
  5. # x應(yīng)用函數(shù),y使用lambda  
  6. pd.read_csv(StringIO(data), converters={'x': foo,  
  7.                                         'y': lambda x: x*3})  
  8. # 使用列索引  
  9. pd.read_csv(StringIO(data),  
  10.             converters={0: foo, 1: lambda x: x*3}) 

14 真假值轉(zhuǎn)換

使用true_values和false_values將指定的文本內(nèi)容轉(zhuǎn)換為T(mén)rue或False,可以用列表指定多個(gè)值。 

  1. # 列表,默認(rèn)為None  
  2. data = ('a,b,c\n1,Yes,2\n3,No,4')  
  3. pd.read_csv(StringIO(data),  
  4.             true_values=['Yes'], false_values=['No']) 

15 跳過(guò)指定行

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

  1. # 類似列表的序列或者可調(diào)用對(duì)象  
  2. # 跳過(guò)前三行  
  3. pd.read_csv(data, skiprows=2 
  4. # 跳過(guò)前三行  
  5. pd.read_csv(data, skiprows=range(2))  
  6. # 跳過(guò)指定行  
  7. pd.read_csv(data, skiprows=[24,234,141])  
  8. # 跳過(guò)指定行  
  9. pd.read_csv(data, skiprows=np.array([2, 6, 11]))  
  10. # 隔行跳過(guò)  
  11. pd.read_csv(data, skiprows=lambda x: x % 2 != 0) 

尾部跳過(guò),從文件尾部開(kāi)始忽略,C引擎不支持。 

  1. # int類型, 默認(rèn)為0  
  2. pd.read_csv(filename, skipfooter=1) # 最后一行不加載 

skip_blank_lines指定是否跳過(guò)空行,如果為T(mén)rue,則跳過(guò)空行,否則數(shù)據(jù)記為NaN。 

  1. # 布爾型,默認(rèn)為T(mén)rue  
  2. # 不跳過(guò)空行  
  3. pd.read_csv(data, skip_blank_lines=False

如果skip_blank_lines=True,header參數(shù)將忽略空行和注釋行, 因此header=0表示第一行數(shù)據(jù)而非文件的第一行。

16 讀取指定行

nrows參數(shù)用于指定需要讀取的行數(shù),從文件第一行算起,經(jīng)常用于較大的數(shù)據(jù),先取部分進(jìn)行代碼編寫(xiě)。 

  1. # int類型,默認(rèn)為None  
  2. pd.read_csv(data, nrows=1000

17 空值替換

na_values參數(shù)的值是一組用于替換NA/NaN的值。如果傳參,需要指定特定列的空值。以下值默認(rèn)會(huì)被認(rèn)定為空值: 

  1. ['-1.#IND', '1.#QNAN', '1.#IND', '-1.#QNAN',  
  2.  '#N/A N/A', '#N/A', 'N/A', 'n/a', 'NA',  
  3.  '#NA', 'NULL', 'null', 'NaN', '-NaN',  
  4.  'nan', '-nan', ''] 

使用na_values時(shí)需要關(guān)注下面keep_default_na的配合使用和影響: 

  1. # 可傳入標(biāo)量、字符串、類似列表序列和字典,默認(rèn)為None  
  2. # 5和5.0會(huì)被認(rèn)為是NaN  
  3. pd.read_csv(data, na_values=[5])  
  4. # ?會(huì)被認(rèn)為是NaN  
  5. pd.read_csv(data, na_values='?' 
  6. # 空值為NaN  
  7. pd.read_csv(data, keep_default_na=Falsena_values=[""])  
  8. # 字符NA和字符0會(huì)被認(rèn)為是NaN  
  9. pd.read_csv(data, keep_default_na=Falsena_values=["NA", "0"])  
  10. # Nope會(huì)被認(rèn)為是NaN 
  11. pd.read_csv(data, na_values=["Nope"])  
  12. # a、b、c均被認(rèn)為是NaN,等于na_values=['a','b','c']  
  13. pd.read_csv(data, na_values='abc' 
  14. # 指定列的指定值會(huì)被認(rèn)為是NaN  
  15. pd.read_csv(data, na_values={'c':3, 1:[2,5]}) 

18 保留默認(rèn)空值

分析數(shù)據(jù)時(shí)是否包含默認(rèn)的NaN值,是否自動(dòng)識(shí)別。如果指定na_values參數(shù),并且 keep_default_na=False,那么默認(rèn)的NaN將被覆蓋,否則添加。keep_default_na和na_values的關(guān)系見(jiàn)表3-2。

▼表3-2 keep_default_na和na_values的取值邏輯關(guān)系

  •  說(shuō)明:如果na_filter為False(默認(rèn)為T(mén)rue),那么keep_default_na和na_values參數(shù)均無(wú)效。 
  1. # 布爾型,默認(rèn)為T(mén)rue  
  2. # 不自動(dòng)識(shí)別空值  
  3. pd.read_csv(data, keep_default_na=False

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

  1. # 布爾型,默認(rèn)為T(mén)rue  
  2. pd.read_csv(data, na_filter=False) # 不檢查 

19 日期時(shí)間解析

日期時(shí)間解析器參數(shù)date_parser用于解析日期的函數(shù),默認(rèn)使用dateutil.parser.parser來(lái)做轉(zhuǎn)換。

如果為某些或所有列啟用了parse_dates,并且datetime字符串的格式都相同,則通過(guò)設(shè)置infer_datetime_format=True,可以大大提高解析速度,pandas將嘗試推斷datetime字符串的格式,然后使用更快的方法解析字符串,從而將解析速度提高5~10倍。如果無(wú)法對(duì)整列做出正確的推斷解析,Pandas將返回到正常的解析模式。

下面是一些可自動(dòng)推斷的日期時(shí)間字符串示例,它們都表示2020年12月30日00:00:00:

  •  "20201230"
  •  "2020/12/30"
  •  "20201230 00:00:00"
  •  "12/30/2020 00:00:00"
  •  "30/Dec/2020 00:00:00"
  •  "30/December/2020 00:00:00" 
  1. # 解析時(shí)間的函數(shù)名,默認(rèn)為None  
  2. # 指定時(shí)間解析庫(kù),默認(rèn)是dateutil.parser.parser  
  3. date_parser = pd.io.date_converters.parse_date_time 
  4. date_parser = lambda x: pd.to_datetime(x, utc=Trueformat='%d%b%Y' 
  5. date_parser = lambda d: pd.datetime.strptime(d, '%d%b%Y')  
  6. # 使用  
  7. pd.read_csv(data, parse_dates=['年份'], date_parserdate_parser=date_parser) 

parse_dates參數(shù)用于對(duì)時(shí)間日期進(jìn)行解析。 

  1. # 布爾型、整型組成的列表、列表組成的列表或者字典,默認(rèn)為False  
  2. pd.read_csv(data, parse_dates=True) # 自動(dòng)解析日期時(shí)間格式  
  3. pd.read_csv(data, parse_dates=['年份']) # 指定日期時(shí)間字段進(jìn)行解析  
  4. # 將第1、4列合并解析成名為“時(shí)間”的時(shí)間類型列  
  5. pd.read_csv(data, parse_dates={'時(shí)間':[1,4]}) 

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

  1. # 布爾型,默認(rèn)為False  
  2. pd.read_csv(data, parse_dates=Trueinfer_datetime_format=True

如果用上文中的parse_dates參數(shù)將多列合并并解析成一個(gè)時(shí)間列,設(shè)置keep_date_col的值為T(mén)rue時(shí),會(huì)保留這些原有的時(shí)間組成列;如果設(shè)置為False,則不保留這些列。 

  1. # 布爾型,默認(rèn)為False  
  2. pd.read_csv(data, parse_dates=[[1, 2], [1, 3]], keep_date_col=True

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

  1. # 布爾型,默認(rèn)為False  
  2. pd.read_csv(data, dayfirst=Trueparse_dates=[0]) 

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

  1. # 布爾型,默認(rèn)為T(mén)rue  
  2. pd.read_csv(data, cache_dates=False

20 文件處理

以下是一些對(duì)讀取文件對(duì)象的處理方法。iterator參數(shù)如果設(shè)置為T(mén)rue,則返回一個(gè)TextFileReader對(duì)象,并可以對(duì)它進(jìn)行迭代,以便逐塊處理文件。 

  1. # 布爾型,默認(rèn)為False  
  2. pd.read_csv(data, iterator=True 
  3. chunksize指定文件塊的大小,分塊處理大型CSV文件。  
  4. # 整型,默認(rèn)為None  
  5. pd.read_csv(data, chunksize=100000 
  6. # 分塊處理大文件  
  7. df_iterator = pd.read_csv(file, chunksize=50000 
  8. def process_dataframe(df):  
  9.     pass  
  10.     return processed_df  
  11. for index,df_tmp in enumerate(df_iterator):  
  12.     df_processed = process_dataframe(df_tmp)  
  13.     if index > 0:  
  14.        df_processed.to_csv(path)  
  15.     else:  
  16.        df_processed.to_csv(path, mode='a'header=False

compression(壓縮格式)用于對(duì)磁盤(pán)數(shù)據(jù)進(jìn)行即時(shí)解壓縮。如果為“infer”,且filepath_or_buffer是以.gz、.bz2、.zip或.xz結(jié)尾的字符串,則使用gzip、bz2、zip或xz,否則不進(jìn)行解壓縮。如果使用zip,則ZIP文件必須僅包含一個(gè)要讀取的數(shù)據(jù)文件。設(shè)置為None將不進(jìn)行解壓縮。 

  1. # 可選值有'infer'、'gzip'、'bz2'、'zip'、'xz'和None,默認(rèn)為'infer'  
  2. pd.read_csv('sample.tar.gz', compression='gzip'

encoding(編碼)指定字符集類型,通常指定為'utf-8'。 

  1. # 字符型,默認(rèn)為None  
  2. pd.read_csv('gairuo.csv', encoding='utf8' 
  3. pd.read_csv("gairuo.csv",encoding="gb2312") # 常見(jiàn)中文 

21 符號(hào)

以下是對(duì)文件中的一些數(shù)據(jù)符號(hào)進(jìn)行的特殊識(shí)別處理。如下設(shè)置千分位分隔符thousands: 

  1. # 字符型,默認(rèn)為None  
  2. pd.read_csv('test.csv', thousands=',') # 逗號(hào)分隔 

小數(shù)點(diǎn)decimal,識(shí)別為小數(shù)點(diǎn)的字符。 

  1. # 字符串,默認(rèn)為'.'  
  2. pd.read_csv(data, decimal=","

行結(jié)束符lineterminator,將文件分成幾行的字符,僅對(duì)C解析器有效。 

  1. # 長(zhǎng)度為1的字符串,默認(rèn)為None  
  2. data = 'a,b,c~1,2,3~4,5,6'  
  3. pd.read_csv(StringIO(data), lineterminator='~'

引號(hào)quotechar,用于表示引用數(shù)據(jù)的開(kāi)始和結(jié)束的字符。引用的項(xiàng)目可以包含定界符,它將被忽略。 

  1. # 長(zhǎng)度為1的字符串  
  2. pd.read_csv(file, quotechar='"'

在csv模塊中,數(shù)據(jù)可能會(huì)用引號(hào)等字符包裹起來(lái),quoting參數(shù)用來(lái)控制識(shí)別字段的引號(hào)模式,它可以是Python csv模塊中的csv.QUOTE_*常量,也可以傳入對(duì)應(yīng)的數(shù)字。各個(gè)傳入值的意義如下。

  •  0或csv.QUOTE_MINIMAL:僅特殊字段有引號(hào)。
  •  1或csv.QUOTE_ALL:所有字段都有引號(hào)。
  •  2或csv.QUOTE_NONNUMERIC:所有非數(shù)字字段都有引號(hào)。
  •  3或csv.QUOTE_NONE:所有字段都沒(méi)有引號(hào)。

如果使用csv模塊,則需要事先引入csv模塊。 

  1. # 整型或者csv.QUOTE_*實(shí)例, 默認(rèn)為0  
  2. import csv  
  3. pd.read_csv('input_file.csv', quoting=csv.QUOTE_NONE) 

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

  1. # 布爾型,默認(rèn)為T(mén)rue  
  2. import csv  
  3. pd.read_csv('data.csv', quotechar='"'doublequote=Truequoting=csv.QUOTE_NONNUMERIC) 

escapechar可以傳入一個(gè)轉(zhuǎn)義符,用于過(guò)濾數(shù)據(jù)中的該轉(zhuǎn)入符。比如,如果一行用雙引號(hào)包裹著的數(shù)據(jù)中有換行符,用以下代碼可以過(guò)濾其中的換行符。 

  1. # 長(zhǎng)度為1的轉(zhuǎn)義字符串,默認(rèn)為None  
  2. pd.read_csv(StringIO(data), escapechar='\n'encoding='utf-8'

注釋標(biāo)識(shí)comment,指示不應(yīng)分析行的部分。如果在一行的開(kāi)頭找到該標(biāo)識(shí),則將完全忽略該行。此參數(shù)必須是單個(gè)字符。像空行一樣(只要skip_blank_lines = True),注釋的行將被參數(shù)header忽略,而不是被skiprows忽略。例如,如果comment ='#',則解析header=0的'#empty \ na,b,c \ n1,2,3'會(huì)將'a,b,c'視為header。 

  1. # 字符串,默認(rèn)為None  
  2. s = '# notes\na,b,c\n# more notes\n1,2,3'  
  3. pd.read_csv(StringIO(s), sep=','comment='#'skiprows=1

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

  1. # 布爾型,默認(rèn)為False  
  2. pd.read_csv(StringIO(data), delim_whitespace=False

22 小結(jié)

通過(guò)本文的介紹,我們了解了讀取CSV文件的一些參數(shù)的功能,也了解了在讀取CSV文件時(shí)可以做一些初步的數(shù)據(jù)整理工作。 

 

責(zé)任編輯:龐桂玉 來(lái)源: 大數(shù)據(jù)DTc
相關(guān)推薦

2021-09-30 07:59:06

zookeeper一致性算法CAP

2019-08-16 09:41:56

UDP協(xié)議TCP

2021-05-07 07:52:51

Java并發(fā)編程

2022-03-29 08:23:56

項(xiàng)目數(shù)據(jù)SIEM

2023-09-25 08:32:03

Redis數(shù)據(jù)結(jié)構(gòu)

2021-09-10 13:06:45

HDFS底層Hadoop

2023-10-04 00:32:01

數(shù)據(jù)結(jié)構(gòu)Redis

2023-11-07 07:46:02

GatewayKubernetes

2024-08-27 11:00:56

單例池緩存bean

2017-03-30 22:41:55

虛擬化操作系統(tǒng)軟件

2023-11-22 07:54:33

Xargs命令Linux

2021-12-13 10:43:45

HashMapJava集合容器

2021-10-21 06:52:17

ZooKeeper分布式配置

2023-12-07 09:07:58

2018-09-26 11:02:46

微服務(wù)架構(gòu)組件

2021-04-11 08:30:40

VRAR虛擬現(xiàn)實(shí)技術(shù)

2022-08-18 20:45:30

HTTP協(xié)議數(shù)據(jù)

2021-11-10 07:47:48

Traefik邊緣網(wǎng)關(guān)

2020-12-09 08:01:38

Mybatis關(guān)系型數(shù)據(jù)庫(kù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产精品不卡 | 国产乱码精品一区二区三区中文 | 欧美精品综合在线 | 亚洲精品一区二区网址 | 婷婷久久网 | 亚洲一区av在线 | 国产欧美日韩精品一区 | 瑟瑟免费视频 | 人人爽日日躁夜夜躁尤物 | 男女一区二区三区 | 99久久精品视频免费 | 男人天堂视频在线观看 | 999久久精品| 日本一区高清 | 欧美一区二区三区 | 国产亚洲网站 | 有码在线 | 欧美一区成人 | 久久一二 | 日韩中文字幕免费在线 | 国产精品乱码一区二三区小蝌蚪 | 国产精品久久久久久久久久妇女 | 国产一区二区精 | 久久久国产精品视频 | 国产精品久久久久久影视 | 欧美一级二级视频 | 亚洲综合网站 | 天天操网 | 亚洲国产成人精品久久 | 久久精品国产一区二区三区 | 午夜免费影视 | 国产乱码精品一区二区三区忘忧草 | 色又黄又爽网站www久久 | 男女网站在线观看 | 97超碰站| 6080yy精品一区二区三区 | 久久精品a级毛片 | 毛片在线看片 | 欧美精品一区二区三区在线播放 | 午夜精品一区二区三区免费视频 | 国产精品视频一区二区三区不卡 |