python中pandas读写数据详解

这篇具有很好参考价值的文章主要介绍了python中pandas读写数据详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Pandas 库读取数据

Pandas 是一种开源数据分析工具,可以帮助我们更方便地处理和分析数据。Pandas 提供了许多函数来读取各种格式的数据,例如 CSV、Excel、SQL 等。

读取 CSV 文件

CSV 文件是一种常用的数据格式,其中每行表示一条记录,每列表示一个字段。我们可以使用 Pandas 库中的 read_csv 函数来读取 CSV 文件。下面是一个基本的用法示例:

import pandas as pd

df = pd.read_csv('file.csv')

在上面的示例中,我们使用 read_csv 函数读取一个名为 file.csv 的 CSV 文件,并将其保存到名为 df 的 DataFrame 对象中。默认情况下,Pandas 将第一行视为列名,并使用逗号作为字段间的分隔符。

有时候,CSV 文件的第一行可能不是列名,或者使用的分隔符不是逗号。在这种情况下,我们需要显式地指定相关参数。例如,如果 CSV 文件使用空格作为字段间的分隔符,并且第一行不是列名,那么可以使用如下的方式读取文件:

df = pd.read_csv('file.csv', sep=' ', header=None)

在上面的示例中,我们将分隔符参数 sep 设置为空格,将 header 参数设置为 None,表示该文件没有列名。

除了上述两个常见的参数之外,Pandas 的 read_csv 函数还提供了许多其他可选参数:

  • sep: 指定分隔符,默认为逗号
  • header: 指定哪一行作为列名,默认为'infer',即自动推断,也可以传入整数或列表来指定具体的行号,或者传入None来表示没有列名
  • names: 指定列名,如果传入了列表,则会覆盖header参数的效果,如果传入了None,则会自动生成列名
  • index_col: 指定哪一列作为行索引,默认为None,即自动生成索引,也可以传入整数或列表来指定具体的列号,或者传入字符串来指定具体的列名
  • usecols: 指定要使用哪些列,默认为None,即使用所有列,也可以传入整数或列表来指定具体的列号,或者传入字符串或列表来指定具体的列名,或者传入可调用对象来根据列名筛选
  • dtype: 指定每一列的数据类型,默认为None,即自动推断,也可以传入字典来映射每一列的类型,例如{‘a’: int, ‘b’: float}
  • skiprows: 指定要跳过哪些行,默认为None,即不跳过任何行,也可以传入整数或列表来指定具体的行号,或者传入可调用对象来根据行号筛选
  • nrows: 指定要读取多少行,默认为None,即读取所有行,也可以传入整数来指定具体的行数
  • na_values: 指定要识别为缺失值的值,默认为None,即只识别空白值,也可以传入字符串或列表来指定具体的值,例如'NA'或['NA', '-']
  • parse_dates: 指定是否要解析日期,默认为False,即不解析日期,也可以传入True来尝试解析所有列,或者传入整数或列表来指定具体的列号,或者传入字符串或列表来指定具体的列名,或者传入字典来映射每

读取 Excel 文件

Pandas 库还可以读取 Excel 文件。可以使用 Pandas 中的 read_excel 函数,例如:

df = pd.read_excel('file.xlsx', sheet_name='Sheet1')

在上面的示例中,我们使用 read_excel 函数读取一个名为 file.xlsx 的 Excel 文件,并将第一个工作表(Sheet1)中的数据保存到一个 DataFrame 对象中。

和 read_csv 函数一样,read_excel 函数也提供了许多可选参数:

  • sheet_name: 指定要读取哪个工作表,默认为0,即第一个工作表,也可以传入整数或字符串来指定具体的工作表号或名称,或者传入None来读取所有工作表,或者传入列表来读取多个工作表
  • header: 指定哪一行作为列名,默认为'infer',即自动推断,也可以传入整数或列表来指定具体的行号,或者传入None来表示没有列名
  • names: 指定列名,如果传入了列表,则会覆盖header参数的效果,如果传入了None,则会自动生成列名
  • index_col: 指定哪一列作为行索引,默认为None,即自动生成索引,也可以传入整数或列表来指定具体的列号,或者传入字符串来指定具体的列名
  • usecols: 指定要使用哪些列,默认为None,即使用所有列,也可以传入整数或列表来指定具体的列号,或者传入字符串或列表来指定具体的列名,或者传入可调用对象来根据列名筛选
  • dtype: 指定每一列的数据类型,默认为None,即自动推断,也可以传入字典来映射每一列的类型,例如{‘a’: int, ‘b’: float}
  • skiprows: 指定要跳过哪些行,默认为None,即不跳过任何行,也可以传入整数或列表来指定具体的行号,或者传入可调用对象来根据行号筛选
  • nrows: 指定要读取多少行,默认为None,即读取所有行,也可以传入整数来指定具体的行数
  • na_values: 指定要识别为缺失值的值,默认为None,即只识别空白值,也可以传入字符串或列表来指定具体的值,例如'NA'或['NA', '-']
  • parse_dates: 指定是否要解析日期,默认为False,即不解析日期,也可以传入True来尝试解析所有列,或者传入整数或列表来指定具体的列号,或者传入字符串或列表来指定具体的列名,或者传入字典来映射每一列是否要解析日期

读取 SQL 数据库

Pandas 还可以从基于 SQL 数据库中读取数据,以便进行更复杂的查询和数据分析。Pandas 提供了一个 read_sql 函数来连接和查询 SQL 数据库。例如:

import pandas as pd
from sqlalchemy import create_engine

engine = create_engine('sqlite:///file.db')

df = pd.read_sql('SELECT * FROM table', engine)

在上面的示例中,我们使用 SQLAlchemy 包中的 create_engine 函数创建了一个连接到 SQLite 数据库的 Engine 对象,然后使用 Pandas 的 read_sql 函数从表 table 中选择所有行('*')。

注意,sqlite:///file.db 中的 file.db 是我们要连接的 SQLite 数据库文件名。如果是其他类型的数据库,需要使用相应的连接字符串。在这里,我们还需要安装 SQLAlchemy 包,该包提供了一些 SQL 数据库引擎的接口和工具。

read_sql()函数的用法如下:

pd.read_sql(sql, con, index_col=None, coerce_float=True, params=None, parse_dates=None, columns=None, chunksize=None)

其中,sql参数是一个SQL语句或者一个表名,用来指定要读取的数据源。con参数是一个数据库连接对象,用来指定要连接的数据库。其他参数是一些可选的参数,用来自定义读取的方式,例如:

  • index_col: 指定哪一列作为行索引
  • coerce_float: 指定是否要将数值类型的数据强制转换为浮点类型
  • params: 指定一些参数来替换SQL语句中的占位符
  • parse_dates: 指定是否要解析日期
  • columns: 指定要返回哪些列
  • chunksize: 指定要分块读取的行数

除了CSV、Excel和SQL文件外,pandas还支持读取其他类型的文件,例如:

  • read_json(): 读取JSON文件
  • read_html(): 读取HTML文件中的表格
  • read_parquet(): 读取Parquet文件
  • read_feather(): 读取Feather文件
  • read_hdf(): 读取HDF5文件
  • read_stata(): 读取Stata文件
  • read_sas(): 读取SAS文件
  • read_spss(): 读取SPSS文件
  • read_pickle(): 读取Pickle文件

这些函数的用法和参数与read_csv()和read_excel()类似,但也有一些特定的参数,例如:

  • read_json()可以指定orient参数来表示JSON数据的结构,例如'split'表示分割索引、列名和数据,'records'表示每一行是一个JSON对象,'index'表示行索引是JSON的键,等等
  • read_html()可以指定match参数来根据正则表达式匹配HTML中的表格,例如match='Population'表示只选取包含'Population'字符串的表格
  • read_sql()可以指定sql参数来传入SQL语句或表名,例如sql='SELECT * FROM table'表示执行SQL查询并返回结果,sql='table'表示直接返回表格内容
  • read_parquet()可以指定engine参数来选择使用哪个库来读取Parquet文件,例如engine='pyarrow'表示使用pyarrow库,engine='fastparquet'表示使用fastparquet库
  • read_feather()可以指定columns参数来选择要读取哪些列,例如columns=['a', 'b']表示只读取'a'和'b'两列

写入数据

除了读取数据之外,Pandas 也提供了许多函数来写入数据到各种格式,例如 to_csv、to_excel、to_sql 等。这些函数通常按照与读取数据函数类似的方式使用。例如,要将 DataFrame 对象保存为 CSV 文件,可以使用 to_csv 函数:

df.to_csv('new_file.csv', index=False)

在上面的示例中,我们使用 to_csv 函数将名为 df 的 DataFrame 对象保存为一个名为 new_file.csv 的 CSV 文件。我们还将 index 参数设置为 False,表示不保存行索引。

常见错误和注意事项

  • 文件路径不正确:读取或写入文件时,必须指定正确的文件路径。如果文件路径不正确,会导致文件读取或写入失败。
  • 编码不正确:在读取或写入 CSV 文件时,可能需要指定正确的编码方式。如果编码不正确,可能会导致读取或写入的数据出现乱码等问题。
  • 参数不正确:读取或写入数据时,必须指定正确的参数。例如,在读取 CSV 文件时,必须指定分隔符、列名等参数,如果参数不正确,数据可能无法正确读取。
  • 规范化数据:在读取数据之前,必须确保数据规范化。例如,在读取 Excel 文件时,必须确保各个工作表中的数据结构一致,否则可能会出现数据读取错误的问题。

总结

pandas是一个强大而灵活的Python包,它可以让你处理带有标签和时间序列的数据。pandas提供了一系列的函数来读取不同类型的文件,并返回一个DataFrame对象,这是pandas的核心数据结构,它可以让你方便地对数据进行分析和处理。

pandas读取文件的函数通常有以下几个特点:文章来源地址https://www.toymoban.com/news/detail-495026.html

  • 函数名以read_开头,后面跟着文件的类型,例如read_csv()表示读取CSV文件
  • 函数的第一个参数是文件的路径或者类似文件的对象,例如read_csv("data.csv")表示读取data.csv文件,read_csv(url)表示从网址读取数据
  • 函数有很多可选的参数来自定义读取的方式,例如sep表示分隔符,header表示列名,index_col表示行索引,dtype表示数据类型等等
  • 函数返回一个DataFrame对象,它是一个二维的表格,可以用行索引和列名来访问数据,也可以用一些方法和属性来对数据进行操作

到了这里,关于python中pandas读写数据详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【pandas基础】--数据读取

    数据读取是第一步,只有成功加载数据之后,后续的操作才有可能。 pandas 可以读取和导入各种数据格式的数据,如CSV,Excel,JSON,SQL,HTML等,不需要手动编写复杂的读取代码。 pandas 提供了导入各类常用文件格式数据的接口,这里介绍3种最常用的加载数据的接口。 读取cs

    2024年02月02日
    浏览(31)
  • Python-pandas:数据合并merge函数用法详解

    介绍一下数据分析中很常用的一个函数——merge,它能够进行高效的数据合并操作。先看一下语法格式及其初步解释: 生成的两个DataFrame对象如下: 1、参数left,right: 将df_d作为左侧的frame,df_e作为右侧的frame,则参数left=df_d,right=df_e; 2、参数how: 当参数how=\\\'left\\\':仅使用左

    2024年02月15日
    浏览(48)
  • python 爬虫热身篇 使用 requests 库通过 HTTP 读取网络数据,使用 pandas 读取网页上的表格,使用 Selenium 模拟浏览器操作

    在过去,收集数据是一项繁琐的工作,有时非常昂贵。机器学习项目不能没有数据。幸运的是,我们现在在网络上有很多数据可供我们使用。我们可以从 Web 复制数据来创建数据集。我们可以手动下载文件并将其保存到磁盘。但是,我们可以通过自动化数据收集来更有效地做

    2023年04月08日
    浏览(74)
  • pandas(九) 数据读取-读取csv、excle、txt、mysql数据

    一、Pandas需要先读取表格类型的数据,然后进行分析 数据类型 说明 读取方法 CSV. tsV. txt 用逗号分隔、tab分割的纯文本文件 pd.read_csv excel xls、xlsx文件 pd.read_excel mysql 关系型数据库表 pd.read_sql 二、Pandas 读取数据 数据资料:https://grouplens.org/datasets/movielens/ 读取CSV, 使用默认的

    2024年02月12日
    浏览(65)
  • 【pandas】Python读取DataFrame的某行或某列

    行索引(index) :对应最左边那一竖列 列索引(columns) :对应最上面那一横行 .loc[]官方释义: Access a group of rows and columns by label(s) or a boolean array.(通过标签或布尔数组访问一组行和列) 官方链接 loc使用索引来取值,基础用法 df.loc[[行索引],[列索引]] .iloc[]官方释义: Purely inte

    2024年02月08日
    浏览(42)
  • 使用pandas读取HTML和JSON数据

    大家好,Pandas是一个功能强大的数据分析库,它提供了许多灵活且高效的方法来处理和分析数据。本文将介绍如何使用Pandas读取HTML数据和JSON数据,并展示一些常见的应用场景。 HTML(超文本标记语言)是一种用于创建网页的标准标记语言。网页通常由HTML标签和内容组成,这

    2024年01月18日
    浏览(36)
  • 100天精通Python(数据分析篇)——第56天:Pandas读写txt和csv文件(read_csv、to_csv参数说明+代码实战)

    文本文件,主要包括csv和txt两种等,相应接口为 read_csv() 和 to_csv(),分别用于读写数

    2023年04月08日
    浏览(59)
  • 【python】【pandas】读取DataFrame的某一列形成一个列表

    输出结果: 在上述代码中,我们创建了一个示例DataFrame df ,其中包含三列(\\\'A\\\'、\\\'B\\\'、\\\'C\\\'),每列都有一些示例值。 然后,我们使用 df.iloc[:, 1] 来访问DataFrame的第一列。这里的 iloc[:, 1] 表示选择所有行(使用 : ),并选择索引为1的列(即第二列)。 接下来,我们使用 tolist

    2024年02月11日
    浏览(46)
  • 【python】pyarrow.parquet+pandas:读取及使用parquet文件

      Parquet是一种用于 列式存储 和 压缩数据 的文件格式,广泛应用于大数据处理和分析中。Python提供了多个库来处理Parquet文件,例如pyarrow和fastparquet。   本文将介绍如何使用pyarrow.parquet+pandas库操作Parquet文件。    pyarrow.parquet 模块,可以读取和写入Parquet文件,以及进行

    2024年02月21日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包