pandas中的read_csv、read_fwf、read_table方法讀取數據


pandas讀取文本文件數據的常用方法:

方法 描述 返回數據
read_csv 讀取csv文件 DataFrame或TextParser
read_fwf 讀取表格或固定寬度格式的文本行到數據框 DataFrame或TextParser
read_table 讀取通用分隔符分割的數據文件到數據框 DataFrame或TextParser


1.read_csv

通過read_csv方法讀取csv格式的數據文件

read_csv(filepath_or_buffer, sep='', delimiter=None, header='infer', names=None, index_col=None, usecols=None, **kwds)

參數:

  • filepath_or_buffer:字符串型,讀取的文件對象,必填。

  • sep:字符串型,分隔符,選填,默認","。

  • delimiter:字符串型。定界符(備選分隔符),指定該參數,sep失效

  • delim_whitespace:布爾型,是否指定空格或制表符作為分隔符,等效於sep=“\s+”,指定該參數,delimiter失效

    詳解\s+:\s匹配任何空白符,等價於[\f\n\r\t\v]

    • \f:匹配換頁符

    • \n:匹配換行符

    • \r:匹配回車符

    • \t:匹配制表符

    • \v:匹配垂直制表符

  • header:指定第幾行作為列名(忽略注解行),如果沒有指定列名,默認header=0;如果指定了列名header=None。

  • names:類數組,列名。默認為空。

  • dtype:每列數據類型。如:{'a': np.flat64, 'b': np.int32}。

  • skipinitialspace:忽略分隔符后的空白(默認False,即不忽略)。

  • skiprows:類字典或整數,要跳過的行或行數,默認為空。

  • nrows:整數型,要讀取的前記錄總數,選填,默認為空,常用來在大型數據集下做初步探索之用。

  • thousands:字符串型,千位符符號,,默認為空。

  • decimal:字符串型,小數點符號,默認為(.)。

  • index_col:行索引的列表號或列名,如果給定一個序列則有多個行索引。

  • squeeze:布爾型,當為True,如果數據僅有一列,返回Series。默認False,即只有一列也返回DataFrame。



2.read_fwf

通過read_fwf方法讀取表格或固定寬度的文本行到數據框。

read_fwf(filepath_or_buffer, colspecs='infer', widths=None, **kwds)

參數:

跟read_csv中的大多相同。下面僅介紹read_fwf特有的參數。

  • widths:由整數組成的列表,選填,如果間隔是連續的,使用字段寬度列表而不是”colspecs“。

示例:數據內容如下。
image

import pandas as pd
fwf_data = pd.read_fwf('fwf_data', widths=[5, 5, 5, 5], names=['col1', 'col2', 'col3', 'col4'])
print(fwf_data)

image


3.read_table

通過read_table方法讀取通用分隔符分割的數據文件到數據框。

read_table(filepath_or_buffer, sep='\t', delimiter=None, header='infer', names=None, index_col=None, usecols=None, **kwds)

參數:

與read_csv完全相同。其實read_csv是read_table中分隔符為逗號的一個特例。

示例數據內容如下:
image

import pandas as pd
table_data = pd.read_table('table_data.txt', sep=';', names=['col1', 'col2', 'col3', 'col4', 'col5'])
print(table_data)

image
數據分割常分為兩種:一種基於固定寬度,一種基於分割符號。即read_fwf和read_talbe。



4.Pandas其他數據讀取方法

方法 描述 返回數據
read_clipboard 讀取剪切板數據,將對象傳遞給read_table方法 DataFrame或TextParser
read_excel 讀取Excel數據 DataFrame或DataFrame構成的字典
read_gbq Google Bigquery中讀取數據 DataFrame
read_hdf 讀取文件中的pandas對象 所選擇的數據對象
read_html 讀取HTML中的表格 由DataFrame構成的字典
read_json 將json對象轉換為Pandas對象 Series或DataFrame,具體取決於參數typ設置
read_msgpack 從指定文件中加載msgpack Pandas對象 文件中的對象類型
read_pickle 從指定文件中加載pickled Pandas或其他pickled對象 文件中的對象類型
read_sas 讀取XPORT或SAS7BDAT格式的SAS(統計分析軟件)文件 DataFrame或SAS7BDATReader或XportReader,具體取決於設置
read_sql 讀取SQL請求或數據庫中的表 DataFrame
read_sql_query 從SQL請求讀取數據 DataFrame
read_sql_table 讀取SQL數據庫中的表 DataFrame
read_stata 讀取Stata(統計分析軟件)文件 DataFrame或StataReader

下面是不同場景較為合適的數據讀取方法:

  1. 純文本格式或非格式化、非結構化的數據,常用語自然語言處理、非結構文本解析、應用正則表達式等后續應用場景下,Python默認的三種方法更為合適。
  2. 結構化、純數值型的數據,並且主要用於矩陣計算、數據建模的,使用Numpy的loadtxt更方便。
  3. 對於二進制的數據處理,使用Numpy的load和fromfile方法更為合適。
  4. 對於結構化的、探索性數據統計和分析場景,使用pandas方法進行讀取,因為其提供了數據框,對數據進行任意翻轉、切片、關聯都很方便。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM