Python Pandas –数据输入和输出

2023-11-07

Pandas as a library can read and write data to a wide variety of sources. In this article, we would concentrate on the following,

熊猫作为图书馆可以读取和写入各种来源的数据。 在本文中,我们将重点介绍以下内容,

  • CSV

    CSV

  • Excel

    电子表格

  • HTML

    HTML

  • SQL

    SQL

In order to work with HTML files and SQL database, along with pandas, we would need to install the below library as well,

为了与HTML文件和SQL数据库以及pandas一起使用,我们还需要安装以下库,

  1. pip install sqlalchemy

    pip安装sqlalchemy

  2. pip install lxml

    pip安装lxml

  3. pip install html5lib

    点安装html5lib

  4. pip install beautifulsoup4

    pip安装beautifulsoup4

  5. pip install openpyxl

    pip安装openpyxl

Note: In the below example, the reference files are located in the same folder as the python files are.

注意:在以下示例中,参考文件与python文件位于同一文件夹中。

读取CSV文件 (Read a CSV file)

import numpy as np
import pandas as pd

# example is the csv file name
df = pd.read_csv('example')
print(df)

'''
Output:
    a   b   c   d
0   0   1   2   3
1   4   5   6   7
2   8   9  10  11
3  12  13  14  15
'''

Pandas has built in function to read from numerous type of file format, such as csv , clipboard, html, json etc.

Pandas具有内置功能,可以读取多种类型的文件格式,例如csv,剪贴板,html,json等。

写入CSV文件 (Write to CSV file)

In the above example, we have the csv content assigned to a dataFrame variable called df.

在上面的示例中,我们将csv内容分配给了一个名为df的dataFrame变量。

# here index = False coz I don't want 
# to save the index as coulmn
df.to_csv('test_csv', index=False) 
pd.read_csv('test_csv')

'''
Output:
    a   b   c   d
0   0   1   2   3
1   4   5   6   7
2   8   9  10  11
3  12  13  14  15
'''

从Excel文件读取 (Reading from Excel file)

While the pandas can read the data from the Excel file, it is important to note that 'pandas' can not read or import the formulas or images or macros. Trying to read them can cause pandas to crash.

尽管大熊猫可以从Excel文件读取数据,但必须注意, “大熊猫”无法读取或导入公式,图像或宏。 尝试阅读它们可能会导致熊猫崩溃。

Also, there can be an error such as requesting us to install the xlrd library in case it is not available. [pip install xlrd].

另外,如果没有xlrd库 ,可能会出现诸如请求我们安装xlrd库的错误。 [pip install xlrd]。

pd.read_excel('Excel_Sample.xlsx')

'''
Output:
   Unnamed: 	0   	a   b   c   d
0           	0   	0   1   2   3
1           	1   	4   5   6   7
2           	2   	8   9  10  11
3           	3  	12  13  14  15
'''

df.to_excel('Excel_Sample_2.xlsx',sheet_name='Sheet1')

HTML输入 (HTML input)

Pandas read_html() function will read tables off of a webpage and return a list of DataFrame objects,

熊猫的read_html()函数将从网页中读取表并返回DataFrame对象的列表,

df = pd.read_html('http://www.fdic.gov/bank/individual/failed/banklist.html')
print(df[0] )

Bank Name City ST CERT Acquiring Institution Closing Date Updated Date Loss Share Type Agreement Terminated Termination Date
0 First CornerStone Bank King of Prussia PA 35312 First-Citizens Bank & Trust Company May 6, 2016 July 12, 2016 none NaN NaN
1 Trust Company Bank Memphis TN 9956 The Bank of Fayette County April 29, 2016 August 4, 2016 none NaN NaN
2 North Milwaukee State Bank Milwaukee WI 20364 First-Citizens Bank & Trust Company March 11, 2016 June 16, 2016 none NaN NaN
3 Hometown National Bank Longview WA 35156 Twin City Bank October 2, 2015 April 13, 2016 none NaN NaN
4 The Bank of Georgia Peachtree City GA 35259 Fidelity Bank October 2, 2015 April 13, 2016 none NaN NaN
5 Premier Bank Denver CO 34112 United Fidelity Bank, fsb July 10, 2015 July 12, 2016 none NaN NaN
6 Edgebrook Bank Chicago IL 57772 Republic Bank of Chicago May 8, 2015 July 12, 2016 none NaN NaN
7 Doral BankEn Espanol San Juan PR 32102 Banco Popular de Puerto Rico February 27, 2015 May 13, 2015 none NaN NaN
8 Capitol City Bank & Trust Company Atlanta GA 33938 First-Citizens Bank & Trust Company February 13, 2015 April 21, 2015 none NaN NaN
9 Highland Community Bank Chicago IL 20290 United Fidelity Bank, fsb January 23, 2015 April 21, 2015 none NaN NaN
银行名称 ST CERT 收购机构 截止日期 更新日期 亏损份额类型 协议终止 终止日期
0 第一角石银行 普鲁士国王 功放 35312 第一公民银行和信托公司 2016年5月6日 2016年7月12日 没有 N N
1个 信托公司银行 孟菲斯 TN 9956 费耶特县银行 2016年4月29日 2016年8月4日 没有 N N
2 北密尔沃基州立银行 密尔沃基 威斯康星州 20364 第一公民银行和信托公司 2016年3月11日 六月16,2016 没有 N N
3 故乡国家银行 长远的眼光 西澳 35156 双城银行 2015年10月2日 2016年4月13日 没有 N N
4 佐治亚银行 桃树市 GA 35259 富达银行 2015年10月2日 2016年4月13日 没有 N N
5 总理银行 丹佛 一氧化碳 34112 联合富达银行 2015年7月10日 2016年7月12日 没有 N N
6 埃奇布鲁克银行 芝加哥 白介素 57772 芝加哥共和国银行 2015年5月8日 2016年7月12日 没有 N N
7 Doral BankEn Espanol 圣胡安 公关 32102 波多黎各人民银行 2015年2月27日 2015年5月13日 没有 N N
8 国会大厦城市银行与信托公司 亚特兰大 GA 33938 第一公民银行和信托公司 2015年2月13日 2015年4月21日 没有 N N
9 高地社区银行 芝加哥 白介素 20290 联合富达银行 2015年1月23日 2015年4月21日 没有 N N

SQL (SQL)

The pandas.io.sql module provides a collection of query wrappers to both facilitate data retrieval and to reduce dependency on DB-specific API. Database abstraction is provided by SQLAlchemy if installed. Also, a driver library is required for the database. Examples of such drivers are psycopg2 for PostgreSQL or pymysql for MySQL. For SQLite, this is included in Python's standard library by default.

pandas.io.sql模块提供了查询包装的集合,以促进数据检索并减少对特定于数据库的API的依赖性。 如果安装了SQLAlchemy,则提供数据库抽象。 另外,数据库需要驱动程序库。 此类驱动程序的示例是用于PostgreSQLpsycopg2或用于MySQL的pymysql。 对于SQLite,默认情况下将其包含在Python的标准库中。

If SQLAlchemy is not installed, a fallback is only provided for SQLite (and for MySQL for backward compatibility, but this is deprecated and will be removed in a future version). This mode requires a Python database adapter that respects the Python DB-API.

如果未安装SQLAlchemy,则仅为SQLite(和向后兼容MySQL)提供回退功能,但不建议使用此功能,并将在以后的版本中将其删除。 此模式需要一个遵循Python DB-API的Python数据库适配器。

See also some cookbook examples for some advanced strategies.

另请参阅一些食谱示例以了解一些高级策略。

The key functions are,

关键功能是

  • read_sql_table(table_name, con[, schema, ...]) : Read SQL database table into a DataFrame.

    read_sql_table(table_name,con [,schema,...]) :将SQL数据库表读入DataFrame。

  • read_sql_query(sql, con[, index_col, ...]) : Read SQL query into a DataFrame.

    read_sql_query(sql,con [,index_col,...]) :将SQL查询读入DataFrame。

  • read_sql(sql, con[, index_col, ...]) : Read SQL query or database table into a DataFrame.

    read_sql(sql,con [,index_col,...]) :将SQL查询或数据库表读入DataFrame。

  • DataFrame.to_sql(name, con[, flavor, ...]) : Write records stored in a DataFrame to a SQL database.

    DataFrame.to_sql(name,con [,flavor,...]) :将存储在DataFrame中的记录写入SQL数据库。

from sqlalchemy import create_engine
engine = create_engine('sqlite:///:memory:')
df.to_sql('data', engine)
sql_df = pd.read_sql('data',con=engine)
print(sql_df)

'''
Output:
   index         0   a   b   c   d
0      0           0   0   1   2   3
1      1           1   4   5   6   7
2      2           2   8   9  10  11
3      3           3  12  13  14  15
'''


翻译自: https://www.includehelp.com/python/python-pandas-data-input-and-output.aspx

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python Pandas –数据输入和输出 的相关文章

  • LogRecord 没有预期的字段

    在使用 logging 模块的Python中 文档承诺LogRecord实例将具有许多属性 这些属性在文档中明确列出 然而 情况似乎并不总是如此 当我不使用日志记录模块的 basicConfig 方法时 下面的程序显示属性 asctime
  • C++ 中的 Java ArrayList [重复]

    这个问题在这里已经有答案了 在Java中我可以做 List
  • 如何在 Java 中创建要打印到 JFrame 的 JLabels 数组

    我正在尝试制作一系列标签 每个标签都有一个来自函数的不同值 我不知道要使用的标签的确切数量 我的意思是可以打印任意数量的值 请帮我做这件事 很简单 只需一个方法返回一个数组或一些 JLabels 集合 并将它们全部添加到您的 JCompon
  • 为什么 RMI 注册表忽略 java.rmi.server.codebase 属性

    我正在运行 java RMI 的 Hello World 示例 1 我在空文件夹中运行注册表 motta motta laptop tmp rmiregistry 2 我启动 HTTP 服务器以在运行时检索类 下载文件夹包含客户端 服务器的
  • 使用 PHP 和 jSON 从 MySQL 获取 UIImage

    我正在开发一个小型新闻阅读器 它通过对 URL 执行 POST 请求来从网站检索信息 响应是一个带有未读新闻的 JSON 对象 例如 应用程序上的最新新闻的时间戳为 2013 03 01 当用户刷新表时 它会发布 domain com ap
  • 无法仅在控制台中启动 androidstudio

    你好 我的问题是下一个 我下载了Android Studio如果我去 路径 android studio bin 我执行studio sh 我收到以下错误 No JDK found Please validate either STUDIO
  • 自动创建带有文件输出的目录[重复]

    这个问题在这里已经有答案了 假设我想制作一个文件 filename foo bar baz txt with open filename w as f f write FOOBAR 这给出了一个IOError since foo bar不存
  • 使用 Cucumber Scenario Outline 处理 Excel 电子表格

    如果可能的话 我试图找到一种更优雅的方法来处理从与 Excel 电子表格行 第 n 个 相关的 Cucumber Scenario Outline 中调用第 n 个数字 目前 我正在使用迭代编号来定义要从中提取数据的 Excel 电子表格的
  • Scrapy FakeUserAgentError:获取浏览器时发生错误

    我使用 Scrapy FakeUserAgent 并在我的 Linux 服务器上不断收到此错误 Traceback most recent call last File usr local lib64 python2 7 site pack
  • 如何在 FastAPI Swagger API 中按方法类型对方法进行排序?

    如何在 FastAPI Swagger 自动文档中设置 API 方法的排序顺序 我希望所有方法按类型分组 GET POST PUT DELETE 这个答案 https stackoverflow com questions 24951268
  • 在解析器/子解析器的开头使用 argparse.REMAINDER

    我想实现一个 arg 解析器 它允许我将单元测试作为子命令之一运行 盲目地将参数传递给 unittest main 例如 foo py unittest args to pass to unittest main 以及其他子命令 foo p
  • Python:Factory Boy 生成对象创建时指定长度的列表

    我正在尝试使用 Factoryboy 在创建时指定长度的对象中创建一个列表 我可以创建列表 但由于提供的长度 大小的惰性性质 每次尝试创建具有指定长度的列表都会导致问题 这是我到目前为止所拥有的 class FooFactory facto
  • 启动客户端时,代码要求提供电话/机器人令牌

    使用 Telethon 库运行我的第一个代码时 它要求提供机器人令牌 这是实际的代码 from telethon import TelegramClient events sync api id 1234567 api hash xxxxx
  • 如何仅在按下某个键时触发鼠标单击?在Python中

    我想制作一个程序 或者当我单击某个键时 鼠标会自动单击 只要我单击该键 如果我不单击该键 它就会停止 我不希望只在触摸按键一次时才发生点击 而是只要按住按键就发生点击 也可以像雷蛇突触鼠标一样按下鼠标左键触发点击 任何想法 EDIT 1 这
  • 如何单独捕获这些异常?

    我正在编写一个与 Quickbooks 交互的 Python 程序 连接到 Quickbooks 时 根据问题的不同 我可能会遇到以下两个常见异常之一 pywintypes com error 2147352567 Exception oc
  • 使用 Python 获取 Youtube 数据

    我正在尝试学习如何分析网络上可用的社交媒体数据 我从 Youtube 开始 from apiclient errors import HttpError from outh2client tools import argparser fro
  • MySQL 查询获取每小时计数

    我需要统计每小时发生的操作次数 我的数据库按操作的时间戳保存日志 我明白我可以做一个 SELECT table time COUNT table time from table t group by t time 然而 也有一段时间没有采取
  • `numpy.diff` 和 `scipy.fftpack.diff` 在微分时给出不同的结果

    我正在尝试计算一些数据的导数 并且正在尝试比较有限差分的输出和谱方法的输出 但结果却截然不同 我无法弄清楚到底为什么 考虑下面的示例代码 import numpy as np from scipy import fftpack as sp
  • Mysql案例不工作

    SELECT SQL CALC FOUND ROWS a zn name AS zone name c name AS carrier name CASE type WHEN type 1 THEN General day ELSE Spe
  • java中的回调是什么[重复]

    这个问题在这里已经有答案了 可能的重复 什么是回调函数 https stackoverflow com questions 824234 what is a callback function 我已经阅读了回调的维基百科定义 但我仍然没有明

随机推荐

  • GNSS系列(1)------GNSS坐标系转换

    由于工作需要 最近开启了GNSS系列文章的撰写工作 发布于公司官网 现将其同步至CSDN 原文链接 http onemo10086 com school article 165 GNSS定位不准确 漂移了好几公里 是怎么回事呢 相信有不少用
  • Unity窗口标题栏显示项目路径

    Unity项目开发过程中会有主干分支等等很多版本 同时打开多个项目时无法区分各个Unity窗口是哪个版本 可以把项目完整路径设置到窗口标题栏方便区分 方法如下 UpdateUnityEditorProcess cs using System
  • 类 模板 已经声明为非类 模板

    类 模板 已经声明为非类 模板 解决方案 原因是在当前包下 已经定义了AA类 解决方案 更改模板类AA的类名
  • Linux系统环境搭建

    一 VM虚拟机创建步骤 1 打开VM点击新创建虚拟机 一直点击下一步到下图显示这里 然后点击自定义硬件 选择IOS映像文件 选择映像文件后点击关闭 然后启动虚拟机 点击连接网络开关 显示已连接后 点击开始安装虚拟机 设置密码 安装完成后点击
  • Ubuntu 生成core文件

    man core 命令 可查阅关于core dump file的详细信息 下文是我的一些总结 core dump file 是进程终止时的内存映像 是个磁盘文件 可用来调试 但是有时程序显示 段错误 核心已转储 时 并没有生成core文件
  • STM32实现红外感应传感器功能

    原理 人体都有恒定的体温 一般在 37 度 所以会发出特定波长 10um 左右的红外线 人体发射的 10um 左右的红外线通过菲涅尔滤光片增强后聚集到红外感应源上 这种元件在接收到人体红外辐射温度发生变化时就会失去电荷平衡 向外释放电荷 后
  • 西门子tcpip通讯实例_西门子1200PLC,组态王与Access数据库通讯--⑤设置PLC设备

    西门子1200PLC 组态王与Access数据库通讯 设置PLC设备 设置PLC设备 1 0 打开组态王软件 打开工程 会看到如下界面 点击COM2 2 0 可以看到新建 点击新建设备 现在我们要连的是西门子系列的1200 所有选择西门子
  • vscode C++配置

    一般配置 在创建了工作区域以后 会有一个 vscode文件夹 里边有launch json tasks json两个文件 launch json 使用 IntelliSense 了解相关属性 悬停以查看现有属性的描述 欲了解更多信息 请访问
  • 向eclipse的JavaWeb项目中导入jar包--备忘录

    一 在你所需的jar包网站下载对应的jar包 如org apache commons lang jar 二 复制粘贴到该JavaWeb的WEB INF目录下的lib目录下 如 三 右键该jar包选择Build Path gt Configu
  • 【华为机试真题 JAVA】字符串删除后的最大数值-100

    题目描述 给定一个由纯数字组成以宇符串表示的数值 现要求字符串中的每个数字最多只能出现2次 超过的需要进行删除 删除某个重复的数字后 其它数字相对位置保持不变 如34533 数字3重复超过2次 需要册除其中一个3 删除第一个3后获得最大数值
  • cuda C++ cmake makefile

    https blog csdn net u011679999 article details 80041081 spm 1001 2014 3001 5502 https blog csdn net comedate article det
  • 控制微信公众号物理键返回url

    总有一些奇葩的需求 在公众号中 如果你写的模块是一个公众号的子模块 那么当你在模块的第一级时 再点返回 应该是返回到公众号的主页 也就是模块区域 而不是返回你上一个地址 直接上代码 1 先监听到物理返回键 在mounted钩子定义 再去de
  • C++ 左值、右值、右值引用

    C 左值 右值 右值引用 发表于2016 2 3 15 49 35 98人阅读 分类 C 在C语言中 我们常常会提起左值 lvalue 右值 rvalue 这样的称呼 而在编译程序时 编译器有时也会在报出的错误信息中会包含左值 右值的说法
  • C++ 中有符号数转化为无符号数

    1 背景知识 我的计算中 char 类型占 8 个比特位 unsigned char 类型能表示的数的范围为 0 2 8 1 即 0 255 共 256 个数 int 类型占 32 个比特位 那么 unsigned 类型所能表示的数的范围为
  • STM32:配置定时器为PWM输出模式以及编码器接口模式

    一 STM32的高级定时器TIM8配置为PWM输出模式 最近在工程项目中 需要用stm32的定时器 以高级定时器TIM8为例 产生两路PWM输出 作为电机的pwm输入 方法如下 初始化电机控制所需IO口 void Motor Init vo
  • Linux——(管道练习)C实现父子进程通信、兄弟进程通信、多个读写端操作管道及管道缓冲区大小、fifo实现非血缘间进程通信

    一 父子进程通信 lswc l 父进程ls写到管道 子进程wc管道的内容 父进程创建管道 拥有读写两端 父进程fork子进程 父进程要将原本输出到屏幕上的内容输出到管道中 用dup实现 然后execlp去进行ls操作 子进程同理 将原本从标
  • 毕业设计-基于轨道的扣件状态检测- YOLO

    目录 前言 课题背景和意义 实现技术思路 一 YOLO 网络结构 二 模型建立 三 实验结果 实现效果图样例 最后 前言 大四是整个大学期间最忙碌的时光 一边要忙着备考或实习为毕业后面临的就业升学做准备 一边要为毕业设计耗费大量精力 近几年
  • BUG收割机之解决eureka的Application显示为UNKNOWN

    BUG收割机之解决eureka的Application显示为UNKNOWN 初学spring cloud的小伙伴们 肯定会遇到eureka服务的application显示为UNKNOWN的情况 如果不幸和下图中的BUG类似 那么就请继续阅读
  • Metasploit超详细安装及使用教程(图文版)

    通过本篇文章 我们将会学习以下内容 1 在Windows上安装Metasploit 2 在Linux和MacOS上安装Metasploit 3 在Kali Linux中使用 Metasploit 4 升级Kali Linux 5 使用虚拟化
  • Python Pandas –数据输入和输出

    Pandas as a library can read and write data to a wide variety of sources In this article we would concentrate on the fol