Pandas read_table()函数

  • Post category:Python

Pandas库中的read_table()函数可以将各种格式的数据文件读入Pandas的DataFrame数据结构中,读取的文件格式可以是CSV、Excel、SQL、JSON格式等。以下是read_table()函数的详细讲解:

函数原型

pandas.read_table(filepath_or_buffer, sep='\t', delimiter=None, header='infer', names=None, index_col=None, usecols=None, squeeze=False, prefix=None, mangle_dupe_cols=True, dtype=None, engine=None, converters=None, true_values=None, false_values=None, skipinitialspace=False, skiprows=None, skipfooter=None, 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='.')

参数说明

  • filepath_or_buffer: 文件路径或缓冲区。可以是本地文件的路径,或URL地址,或任何带有read()方法的缓冲区,如已读取的字符串、字节流等。
  • sep: 分隔符。默认为’\t’,即制表符。如果文件数据是CSV格式,可以将sep设置为’,’来作为分隔符。
  • delimiter: 与sep相同的作用,但是不能同时设置sep和delimiter。
  • header: 第一行是否为列名。默认为’infer’,表示自动判断。如果第一行不是列名,则将header设为None,之后可通过names参数指定列名。
  • names: 指定列名。names是一个列表(或数组),与读取的数据的列数一一对应。
  • index_col: 指定数据中哪些列作为DataFrame的索引。可指定一个或多个列。
  • usecols: 指定读取哪些列。可以是列名或列号,或由它们组成的列表或表示列名的正则表达式。
  • squeeze: 如果读取的文件只有一列,则返回一个Series,而不是DataFrame。默认为False。
  • prefix: 给列添加前缀。例如,如果指定为”X”,则新列的名称将以”X0″、”X1″、……命名。
  • mangle_dupe_cols: 解决列名重复的问题。默认为True,将列名添加”.1″、”.2″、……以区分重复列名。
  • dtype: 指定每列的数据类型。可以是Python基本数据类型(如int、float、str等),也可以是Numpy的数据类型。
  • engine: 指定使用哪种解析引擎。这可能是’python’、’c’或’python-fwf’。’python’使用原生Python引擎,’c’使用C引擎更快,而’python-fwf’是解决固定宽度格式的引擎。
  • converters: 一个字典,指定需要将哪些列转换为哪些函数进行数据转换。例如,{‘foo’: f}将’foo’列的值传递给f函数进行转换。
  • true_values: 当读取的文件中出现这些值时,将它们转换为True。
  • false_values: 当读取的文件中出现这些值时,将它们转换为False。
  • skipinitialspace: 如果为True,则去除每个分隔符后的空格。
  • skiprows: 跳过读取的文件头的行数。默认为None,表示不跳过任何行。例如,设置skiprows为3,表示跳过文件的前3行。
  • nrows: 只读取文件的前nrows行。默认为None,表示读取所有行。
  • na_values: 指定哪些值应该被视为缺失值。默认情况下,na_values为None。可以指定字符串,用于表示缺失值的值。例如,na_values=[‘NULL’, ‘NA’]。
  • keep_default_na: 如果需要使用na_values来替换默认的缺失值,可将keep_default_na设置为False。
  • na_filter: 是否将含有na_values的字符串转换为空值。
  • verbose: 是否显示读取的详细信息。默认为False。
  • skip_blank_lines: 是否跳过空行。默认为True。
  • parse_dates: 尝试将一列解析为datetime类型。默认为False。
  • infer_datetime_format: 是否尝试自动推断日期/时间格式。默认为False。
  • keep_date_col: 如果使用parse_dates,则保留原始日期/时间列。默认为False。
  • date_parser: 如果使用parse_dates,可以指定自定义的日期解析器。
  • dayfirst: 如果为True,则使用DD/MM/YYYY格式解析日期。
  • cache_dates: 如果为True,则缓存解析的日期,以获得更快的解析速度。默认为True。
  • iterator: 返回一个TextFileReader对象,允许逐块完成文件读取。默认为False。
  • chunksize: 文件块的大小。只有在iterator=True时才会被使用。
  • compression: 尝试从文件名的扩展名中推断压缩类型,例如 gzip、bz2、xz、zip。默认值是’infer’,如果不能正确推断就不使用任何压缩。
  • thousands: 千位分隔符,例如”1,000″。默认为None,表示不使用千位分隔符。
  • decimal: 指定浮点数的小数点分隔符。默认为’.’。

返回值

返回一个DataFrame类型的数据。

举例说明

import pandas as pd

# 从CSV格式文件中读取数据
df = pd.read_table('data.csv', sep=',')

# 从Excel文件中读取数据
df = pd.read_table('data.xlsx', sheet_name='Sheet1', header=0)

# 从SQL表中读取数据
from sqlalchemy import create_engine
engine = create_engine('mysql+pymysql://user:password@host/database_name')
query = 'SELECT * FROM orders'
df = pd.read_table(query, engine)

# 从JSON文件中读取数据
import json
with open('data.json') as f:
    data = json.load(f)
df = pd.read_table(data)

以上是使用read_table()函数读取CSV、Excel、SQL、JSON文件的示例,其中读取CSV文件时,sep指定为’,’;读取Excel文件时,sheet_name指定为Sheet1;读取SQL表时,通过SQLAlchemy与数据库建立连接,query指定读取的数据,engine指定连接的数据库;读取JSON文件时,先将文件内容读入data,通过pd.read_table()读取。