Pandas基础教程第02讲 Pandas读取数据

2022-09-24 12:19:53

1. 读取纯文本文件

pd.read_csv() 用于读取csv、tsv、txt等纯文本文件,csv以逗号分隔,tsv以制表符分隔,txt的分隔符任意。

pd.read_csv(
    filepath_or_buffer: FilePathOrBuffer,# 文件路径
    sep=",",# 分隔符
    header="infer",# 列名
    names=None,# 自定义列名
    index_col=None,# 索引名
    dtype=None,# 数据类型
    engine=None,# 解析器引擎
    converters=None,# 函数转换
    encoding=None,# 文件编码
    skipinitialspace=False,# 是否忽略分隔符后的空白
    skiprows=None,# 从文件头部忽略的行数
    skipfooter=0,# 从文件尾部忽略的行数
    nrows=None,# 读取的行数
    error_bad_lines=True,# 是否处理错误行)
  • filepath_or_buffer:str, path object or file-like object。字符串路径、路径对象或类文件对象,包括本地文件路径(例如./datas/1.csv)、URL地址(http、ftp、s3、gs和file)等;
  • sep:str, default ‘,’。指定分隔符
  • header:int, list of int, default ‘infer’。指定行数作为列名,开始读取数据的行数。header=None 没有列名,自动设置为数字编号;header=0 以第一行作为列名;可以传入一个列表,形成多重列名,列表中未指定的中间行将被跳过;
  • names:array-like, optional。自定义列名
  • index_col:int, str, sequence of int / str, or False, default None,指定列数/列名作为索引名,可以传入一个序列,形成多重索引;
  • dtype:Type name or dict of column -> type, optional,指定各列的数据类型,例如{'a': np.float64, 'b': np.int32}
  • engine:{‘c’, ‘python’}, optional,指定解析器引擎
  • converters:dict, optional,对某些列进行函数转换,例如{'金额': lambda x: x+1, '交易量': lambda x: x*2}
  • encoding:str, optional,指定文件编码
  • skipinitialspace:bool, default False,是否忽略分隔符后的空白
  • skiprows:list-like, int or callable, optional,从文件头部忽略的行数
  • skipfooter:int, default 0,从文件尾部忽略的行数
  • nrows:int, optional,指定读取的行数,用于读取部分数据;
  • error_bad_lines:bool, default,是否处理错误行,如果值为True,遇到错误行时终止执行,且不会返回任何结果;如果值为False,则跳过错误行继续解析;

C引擎解析速度更快,Python引擎功能更完善。如果分隔符为None,C引擎无法自动检测分隔符,强制使用Python引擎,它调用Python内置嗅探器工具csv.Sniffer检测分隔符。此外,超过1个字符且不同于\s+ 的分隔符将被视为正则表达式,C引擎不能解析正则表达式,强制使用Python引擎。

默认情况下,包含太多字段的行(例如,带有太多逗号的csv行)会引发异常
并且不会返回任何DataFrame如果为False,则这些“坏行”将从返回的DataFrame中删除。

2. 读取Excel文件

pd.read_excel() 用于读取Excel文件,包括xls、xlsx、xlsm、xlsb、odf、ods和odt等。

pd.read_excel(
    io,# 文件路径
    sheet_name=0,# 工作表
    header=0,# 列名
    names=None,# 自定义列名
    index_col=None,# 索引名
    dtype=None,# 数据类型
    engine=None,# 解析器引擎
    converters=None,# 函数转换
    skiprows=None,# 从文件头部忽略的行数
    skipfooter=0,# 从文件尾部忽略的行数
    nrows=None,# 读取的行数):
  • io:str, bytes, ExcelFile, xlrd.Book, path object, or file-like object,字符串路径、路径对象或类文件对象,包括本地文件路径(例如./datas/1.xls)、URL地址(http、ftp、s3、gs和file)等;
  • sheet_name:str, int, list, or None, default 0,指定工作表,可以是多张工作表,返回字典,sheet_name=None获取所有工作表;
  • engine:str, default None,指定解析器引擎,必须与文件类型相匹配,包括xlrd、openpyxl、odf和pyxlsb等。

3. 读取MySQL数据库

pd.read_sql() 用于读取MySQL数据库,它是read_sql_table()read_sql_query() 的便捷封装,根据输入情形委派给特定函数。

pd.read_sql(
    sql,# 查询语句
    con,# 数据库连接
    index_col=None,# 索引名)
  • sql:str or SQLAlchemy Selectable (select or text object),查询语句
  • con:SQLAlchemy connectable, str, or sqlite3 connection,指定数据库连接

4. 数据库魔法命令

%load_ext sql%sql mysql+pymysql://username:password@localhost/database_name
data=%sql select*from table_name
df= data.DataFrame()
  • 作者:斵冰且行
  • 原文链接:https://blog.csdn.net/moonspiritacm/article/details/111604773
    更新时间:2022-09-24 12:19:53