pandas之读取文件
当使用 Pandas 做数据分析的时,需要读取事先准备好的数据集,这是做数据分析的第一步。Panda 提供了多种读取数据的方法:
- read_csv() 用于读取文本文件
- read_json() 用于读取 json 文件
- read_sql_query() 读取 sql 语句的,
本节将对上述方法做详细介绍。
CSV文件读取
CSV 又称逗号分隔值文件,是一种简单的文件格式,以特定的结构来排列表格数据。 CSV 文件能够以纯文本形式存储表格数据,比如电子表格、数据库文件,并具有数据交换的通用格式。CSV 文件会在 Excel 文件中被打开,其行和列都定义了标准的数据格式。
将 CSV 中的数据转换为 DataFrame 对象是非常便捷的。和一般文件读写不一样,它不需要你做打开文件、读取文件、关闭文件等操作。相反,您只需要一行代码就可以完成上述所有步骤,并将数据存储在 DataFrame 中。
下面进行实例演示,首先您需要创建一组数据,并将其保存为 CSV 格式,数据如下:
Name,Hire Date,Salary,Leaves Remaining
John Idle,08/15/14,50000.00,10
Smith Gilliam,04/07/15,65000.00,6
Parker Chapman,02/21/14,45000.00,7
Jones Palin,10/14/13,70000.00,3
Terry Gilliam,07/22/14,48000.00,9
Michael Palin,06/28/13,66000.00,8
注意:将上述数据保存到.txt的文本文件中,然后将文件的扩展名后缀修改为 csv,即可完成 csv 文件的创建。
接下来,我们使用下列代码读写数据:
- import pandas
- #仅仅一行代码就完成了数据读取,但是注意文件路径不要写错
- df = pandas.read_csv('C:/Users/Administrator/Desktop/hrd.csv')
- print(df)
输出结果:
Name Hire Date Salary Leaves Remaining
0 John Idle 08/15/14 50000.0 10
1 Smith Gilliam 04/07/15 65000.0 6
2 Parker Chapman 02/21/14 45000.0 7
3 Jones Palin 10/14/13 70000.0 3
4 Terry Gilliam 07/22/14 48000.0 9
5 Michael Palin 06/28/13 66000.0 8
在下一节会对 read_csv() 函数做详细讲解。
json读取文件
您可以通过下列方法来读取一个 json 文件,如下所示:
- import pandas as pd
- data = pd.read_json('C:/Users/Administrator/Desktop/hrd.json')
- print(data)
输出结果:
Name Hire Date Salary Leaves Remaining
0 John Idle 08/15/14 50000.0 10
1 Smith Gilliam 04/07/15 65000.0 6
2 Parker Chapman 02/21/14 45000.0 7
3 Jones Palin 10/14/13 70000.0 3
4 Terry Gilliam 07/22/14 48000.0 9
5 Michael Palin 06/28/13 66000.0 8
SQL数据库读取
如果想要从 SQL 数据库读取数据,首先您应该使用 Python 和数据库建立连接,然后将查询语句传递给 read_sql_query() 方法,下面做简单地演示:
1) 安装pysqlite3模块
pip install pysqlite3
2) 建立数据连接
import sqlite3
con = sqlite3.connect("database.db")
3) 数据库读取数据
在 SQLite 数据库中创建一张信息表,您可以随意添加一些信息,最后使用下列方法读取数据即可:
#con参数指定操作数据库的引擎,可以指定,也可默认
df = pd.read_sql_query("SELECT * FROM information",con)
---------------------------------------------------------------
在《Python Pandas读取文件》中,我们讲解了多种用 Pandas 读写文件的方法。本节我们讲解如何应用这些方法 。
我们知道,文件的读写操作属于计算机的 IO 操作,Pandas IO 操作提供了一些读取器函数,比如 pd.read_csv()、pd.read_json 等,它们都返回一个 Pandas 对象。
在 Pandas 中用于读取文本的函数有两个,分别是: read_csv() 和 read_table() ,它们能够自动地将表格数据转换为 DataFrame 对象。其中 read_csv 的语法格式,如下:
pandas.read_csv(filepath_or_buffer, sep=',', delimiter=None, header='infer',names=None, index_col=None, usecols=None)
下面,新建一个 txt 文件,并添加以下数据:
ID,Name,Age,City,Salary
1,Jack,28,Beijing,22000
2,Lida,32,Shanghai,19000
3,John,43,Shenzhen,12000
4,Helen,38,Hengshui,3500
将 txt 文件另存为 person.csv 文件格式,直接修改文件扩展名即可。接下来,对此文件进行操作。
read_csv()
read_csv() 表示从 CSV 文件中读取数据,并创建 DataFrame 对象。
- import pandas as pd
- #需要注意文件的路径
- df=pd.read_csv("C:/Users/Administrator/Desktop/person.csv")
- print (df)
输出结果:
ID Name Age City Salary
0 1 Jack 28 Beijing 22000
1 2 Lida 32 Shanghai 19000
2 3 John 43 Shenzhen 12000
3 4 Helen 38 Hengshui 3500
1) 自定义索引
在 CSV 文件中指定了一个列,然后使用index_col可以实现自定义索引。
- import pandas as pd
- df=pd.read_csv("C:/Users/Administrator/Desktop/person.csv",index_col=['ID'])
- print(df)
输出结果:
Name Age City Salary
ID
1 Jack 28 Beijing 22000
2 Lida 32 Shanghai 19000
3 John 43 Shenzhen 12000
4 Helen 38 Hengshui 3500
2) 查看每一列的dtype
- import pandas as pd
- #转换salary为float类型
- df=pd.read_csv("C:/Users/Administrator/Desktop/person.csv",dtype={'Salary':np.float64})
- print(df.dtypes)
输出结果:
ID int64
Name object
Age int64
City object
Salary float64
dtype: object
注意:默认情况下,Salary 列的 dtype 是 int 类型,但结果显示其为 float 类型,因为我们已经在上述代码中做了类型转换。
3) 更改文件标头名
使用 names 参数可以指定头文件的名称。
- import pandas as pd
- df=pd.read_csv("C:/Users/Administrator/Desktop/person.csv",names=['a','b','c','d','e'])
- print(df)
输出结果:
a b c d e
0 ID Name Age City Salary
1 1 Jack 28 Beijing 22000
2 2 Lida 32 Shanghai 19000
3 3 John 43 Shenzhen 12000
4 4 Helen 38 Hengshui 3500
注意:文件标头名是附加的自定义名称,但是您会发现,原来的标头名(列标签名)并没有被删除,此时您可以使用header参数来删除它。
通过传递标头所在行号实现删除,如下所示:
- import pandas as pd
- df=pd.read_csv("C:/Users/Administrator/Desktop/person.csv",names=['a','b','c','d','e'],header=0)
- print(df)
输出结果:
a b c d e
0 1 Jack 28 Beijing 22000
1 2 Lida 32 Shanghai 19000
2 3 John 43 Shenzhen 12000
3 4 Helen 38 Hengshui 3500
假如原标头名并没有定义在第一行,您也可以传递相应的行号来删除它。
4) 跳过指定的行数
skiprows参数表示跳过指定的行数。
- import pandas as pd
- df=pd.read_csv("C:/Users/Administrator/Desktop/person.csv",skiprows=2)
- print(df)
输出结果:
2 Lida 32 Shanghai 19000
0 3 John 43 Shenzhen 12000
1 4 Helen 38 Hengshui 3500
注意:包含标头所在行。
to_csv()
Pandas 提供的 to_csv() 函数用于将 DataFrame 转换为 CSV 数据。如果想要把 CSV 数据写入文件,只需向函数传递一个文件对象即可。否则,CSV 数据将以字符串格式返回。
下面看一组简单的示例:
- import pandas as pd
- data = {'Name': ['Smith', 'Parker'], 'ID': [101, 102], 'Language': ['Python', 'JavaScript']}
- info = pd.DataFrame(data)
- print('DataFrame Values:\n', info)
- #转换为csv数据
- csv_data = info.to_csv()
- print('\nCSV String Values:\n', csv_data)
输出结果:
DataFrame:
Name ID Language
0 Smith 101 Python
1 Parker 102 JavaScript csv数据:
,Name,ID,Language
0,Smith,101,Python
1,Parker,102,JavaScript
指定 CSV 文件输出时的分隔符,并将其保存在 pandas.csv 文件中,代码如下:
pandas之读取文件的更多相关文章
- pandas中读取文件报错
import pandas as pd fileName = "路径中带有中文/xxx.csv" tf_train = pd.read_csv(fileName) 会提示报错 OS ...
- 三、Python系列——Pandas数据库读取数据
Pandas主要先读取表格类型的数据,然后进行分析. import pandas as pd# 由于是用pandas模块操作数据,因此不用在路径前加open,否则就是python直接打开文件,可能还会 ...
- Pandas读取文件
如何使用pandas的read_csv模块以及其他读取文件的模块?? 一起来看一看 Pandas中read_csv和read_table的区别 注:使用pandas读取文件格式为pandas特有的da ...
- pandas read_csv读取大文件的Memory error问题
今天在读取一个超大csv文件的时候,遇到困难:首先使用office打不开然后在python中使用基本的pandas.read_csv打开文件时:MemoryError 最后查阅read_csv文档发现 ...
- python 读取文件夹中所有同类型的文件 并用pandas合并
import globimport osimport pandas as pd read_path = 'D:/Data' # 要读取的文件夹的地址read_excel = glob.glob(os. ...
- pandas模块之读取文件
首先我们来看一个文件 1 男 北京 刘一 我笑 #跳过此行,序号1 2 女 上海 刘珊 你笑 3 男 杭州 刘五 他笑 #跳过此行,序号四 4 女 重庆 刘六 不笑了 下面来分析内容,并使用参数 1 ...
- Pandas读取文件报错UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb6 in position 0: invalid start byte
pandas读取文件时报UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb6 in position 0: invalid start by ...
- 1.pandas打开和读取文件
最近在公司在弄数据分析相关的项目,数据分析就免不了要先对数据进行处理,也就自然避不开关于excel文档的初始化操作了. 一段时间之后,发现pandas更加符合我的项目要求,所以,将一些常规操作记录下来 ...
- python pandas 中文件的读写——read_csv()读取文件
read_csv()读取文件1.python读取文件的几种方式read_csv 从文件,url,文件型对象中加载带分隔符的数据.默认分隔符为逗号read_table 从文件,url,文件型对象中加载带 ...
- Python读取文件内容与存储
Python读取与存储文件内容 一..csv文件 读取: import pandas as pd souce_data = pd.read_csv(File_Path) 其中File_path是文件的 ...
随机推荐
- HBuilder开发uniapp项目使用高德地图相关配置(整理)
一.高德地图开放平台申请key 1.进入高德地图开放平台 -> 登录或注册 -> 点击进入控制台主页 2.点击应用管理 -> 点击创建新应用 3.输入并选择应用类型 -> 点击 ...
- VUE-使用touchstart、touchmove、touchend实现拖拽卡片列表,实现更新排序功能
感谢本文参考地址,原文解析更加清晰如有需要请移步:https://blog.csdn.net/weixin_40400844/article/details/114849253 怕原链接失效,将代码拷 ...
- little bug
1 python script can be run in shell console while not in calling shell scripts wfile = codecs.open(n ...
- 更改windows powershell默认路径
查看配置文件位置 $profile 修改配置文件 code $profile 加上 Set-Location C:\Users\zzy81\Desktop
- SQL Server 2014 启动时提示:无效的许可证数据,需要重新安装
路径:C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE 双击运行DDConfigCA.exe后,Sql Server 20 ...
- SqlServer提示对象名无效
执行脚本 exec sp_msforeachtable "sp_changeobjectowner '?','dbo'"
- Spring MVC 常见问题
Spring MVC的主要组件有那些? spring mvc 在使用 DispatcherServlet 处理 web 请求的时候,会用到 spring 中的九大组件,以下是几个关键的组件: 1.Li ...
- 【MSSQL】远程打开对象
opendatasource https://docs.microsoft.com/zh-cn/sql/t-sql/functions/opendatasource-transact-sql?view ...
- Matlab - 在Figure中调整X轴到x=0,y=0处
原图 调整 选中图像后打开属性编辑器,将X轴位置修改为原点. 结果
- gorm操作sqlite3,高并发读写如何避免锁库?
1. 场景 这两天一直被这个sqlit3困扰,起因是项目中需要有这样一个中间,中间件承担着API角色和流量转发的角色,需要接收来自至少300个agent的请求数据,和健康检测的请求. 所以当即想到用g ...