python pandas读取csv_pandas读取csv文件数据的方法及注意点
pandas是一个高效的数据分析工具。基于其高度抽象的数据结构DataFrame(点击这里了解DataFrame数据结构),几乎可以对数据进行任何你想要的操作。
由于现实世界中数据源的格式非常多,pandas也支持了不同数据格式的导入方法,本文介绍pandas如何从csv文件中导入数据。
数据导入到pandas
从上图可以看出,我们要做的工作就是把存储在csv格式中的数据读入并转换成DataFrame格式。
pandas提供了一个非常简单的api函数来实现这个功能:read_csv()。
1. 通过read_csv接口读入csv文件中的数据
下面是一个简单的示例:
import pandas as pd
CSV_FILE_PATH = './test.csv'
df = pd.read_csv(CSV_FILE_PATH)
print(df.head(5))
只要简单地指定csv文件的路径,便可以得到DataFrame格式的数据df。对于理想情况下的数据,导入过程就是这么简单!
下面考虑这种情况:假设csv文件头部有几个无效行,那么打印出来的结果可能如下所示:
1 2 3 4
0 datetime host hit volume
1 2018-07-24 09:00:00 weibo.com 20 1020
2 2018-07-25 09:00:00 qq.com no 20 1028
3 2018-07-26 19:00:00 sina.com 25 1181
4 2018-07-27 21:00:00 sohu.com 15 4582
pandas把【1,2,3,4】这组无效数据当作了column name;而实际上,我们更偏向于将【datetime,host,hit,volume】这组数据当作column name。对于这种情况,read_csv()函数提供了一个参数:skiprows,用于指定跳过csv文件的头部的前几行。在这里,我们跳过1行即可。
import pandas as pd
CSV_FILE_PATH = './test.csv'
df = pd.read_csv(CSV_FILE_PATH, skiprows=1)
print(df.head(5))
得到的结果如下所示:
datetime host hit volume
0 2018-07-24 09:00:00 weibo.com 20 1020
1 2018-07-25 09:00:00 qq.com no 20 1028
2 2018-07-26 19:00:00 sina.com 25 1181
3 2018-07-27 21:00:00 sohu.com 15 4582
2. 处理csv文件中的无效数据
pandas可以自动推断每个column的数据类型,以方便后续对数据的处理。还以上文中的数据为例,通过如下代码:
import pandas as pd
CSV_FILE_PATH = './test.csv'
df = pd.read_csv(CSV_FILE_PATH)
print(df.head(5))
print('datatype of column hit is: ' + str(df['hit'].dtypes))
得出的结果:
datetime host hit volume
0 2018-07-24 09:00:00 weibo.com 20 1020
1 2018-07-25 09:00:00 qq.com 20 1028
2 2018-07-26 19:00:00 sina.com 25 1181
3 2018-07-27 21:00:00 sohu.com 15 4582
datatype of column hit is: int64
pandas将hit这一列的数据类型判定为了int64,这显然方便未来我们对于该列数据的运算。
但是在实际情况中,我们经常会面临数据缺失的问题,如果出现这种情况,我们往往会用一些占位符来表达。假设,我们用missing这个占位符来表示数据缺失,仍使用上述代码,来探索下会发生些什么:
datetime host hit volume
0 2018-07-24 09:00:00 weibo.com 20 1020
1 2018-07-25 09:00:00 qq.com 20 1028
2 2018-07-26 19:00:00 sina.com missing missing
3 2018-07-27 21:00:00 sohu.com 15 4582
datatype of column hit is: object
由于hit这一列中出现了missing这个字符串,pandas将hit这一列的数据类型判断成了object。这会给我们对该列数据的运算带来影响。例如,假设我们要计算hit列前两行数据的和,代码如下:
print(df['hit'][0] + df['hit'][1])
结果是:
2020
本来我们想要的是数学运算结果,但得到的却是一个字符串拼接结果。这就是由于数据类型判断失误带来的严重影响。
对于这种情况,read_csv()函数也提供了一个简单的处理方式,只需要通过na_value参数指定占位符,pandas便会在读入数据的过程中自动将这些占位符转换成NaN,从而不影响pandas对column数据类型的正确判断。
示例代码:
import pandas as pd
CSV_FILE_PATH = './test.csv'
df = pd.read_csv(CSV_FILE_PATH, skiprows=0, na_values=['missing')
print(df.head(5))
print('datatype of column hit is: ' + str(df['hit'].dtypes))
print(df['hit'][0] + df['hit'][1])
运行结果如下:
datetime host hit volume
0 2018-07-24 09:00:00 weibo.com 20.0 1020.0
1 2018-07-25 09:00:00 qq.com 20.0 1028.0
2 2018-07-26 19:00:00 sina.com NaN NaN
3 2018-07-27 21:00:00 sohu.com 15.0 4582.0
datatype of column hit is: float64
40.0
可以看到,pandas将数据集中的missing单元全部转换为了NaN,并成功判断出hit这一列的数据类型。
3. 总结
通过一个简单的read_csv()函数,实际可以做到如下几件事:
通过指定的文件路径,从本地读取csv文件,并将数据转换成DataFrame格式
更正数据集的头部(column)
正确处理缺失数据
推断每一列的数据类型
当然,read_csv()函数还有一系列其他参数来应对各种情况,遇到具体问题的同学可参考其接口指南。
最后送大家一个支付宝红包
python pandas读取csv_pandas读取csv文件数据的方法及注意点相关推荐
- python计算csv文件内的数据_Python利用pandas计算多个CSV文件数据值的实例
功能:扫描当前目录下所有CSV文件并对其中文件进行统计,输出统计值到CSV文件 pip install pandas import pandas as pd import glob,os,sys in ...
- python 如何使用 pandas 在 flask web 网页中分页显示 csv 文件数据
目录 一.实战场景 二.知识点 python 基础语法 python 文件读写 python 分页 pandas 数据处理 flask web 框架 jinja 模版 三.菜鸟实战 初始化 Flask ...
- python读取csv某一列存入数组_python 读取.csv文件数据到数组(矩阵)的实例讲解
利用numpy库 (缺点:有缺失值就无法读取) 读: import numpy my_matrix = numpy.loadtxt(open("1.csv","rb&qu ...
- pythonpandas读取csv文件最后一行_简单小案例(一):使用Pandas在Python中读取和写入CSV文件...
前期文章链接: YOLOv3论文 https://arxiv.org/pdf/1804.02767.pdf 正文: 有许多方法可以在Python中读写CSV文件.有几种不同的方法,例如,您可以使用Py ...
- [转载] pythonpandas读取csv文件最后一行_简单小案例(一):使用Pandas在Python中读取和写入CSV文件...
参考链接: 使用Pandas在Python中读写CSV文件 前期文章链接: YOLOv3论文 https://arxiv.org/pdf/1804.02767.pdf 正文: 有许多方法可以在Pyth ...
- python csv数据处理生成图_Python 读取CSV文件数据并生成可视化图形
CSV 文件数据读取并生成图形 CSV 文件格式 在文本文件中存储数据,最简单的方式就是将数据按照一定的格式存放在文件中,在读取文件时根据设计好的格式去将对应数据读取出来,这样就能很方便的进行简单数据 ...
- python读取c盘中的csv文件-python读取当前目录下的CSV文件数据
在处理数据的时候,经常会碰到CSV类型的文件,下面将介绍如何读取当前目录下的CSV文件,步骤如下 1.获取当前目录所有的CSV文件名称: #创建一个空列表,存储当前目录下的CSV文件全称 file_n ...
- python输出csv文件-Python之读取与写入CSV文件
原标题:Python之读取与写入CSV文件 本文作者:闫续文 文字编辑:张梦婷 技术总编:张学人 有问题,不要怕!访问 CSV(Comma-Separated Values)格式是电子表格和数据库最常 ...
- csv文件python是怎么输入的,python怎么读取和写入csv文件
Python读取与写入CSV文件需要导入Python自带的CSV模块,然后通过CSV模块中的函数csv.reader()与csv.writer()来进行CSV文件的读取与写入. 写入CSV文件impo ...
最新文章
- 学会 IDEA REST Client后,postman就可以丢掉了...
- FlashFXP客户端 FTP连接,连接很慢的情况,
- mybatis-plus自动生成文件
- Python:实现xlsx文件与csv文件之间相互转换
- STM32分散加载文件
- 表面招助理实为“拉皮条”?招聘平台也有情色陷阱,BOSS直聘回应...
- sql server 比较大小
- 4.高性能MySQL --- Schema与数据类型优化
- springboot(运行原理参考借鉴)
- turbo c 混编 汇编语言,Turbo C 编译 嵌入汇编
- 新谈:为什么你觉得FPGA难学?如何入门?
- 尚硅谷-ShardingSphere
- 2019 Revit二次开发企业
- 工业图像处理实战--九点标定法
- 当前主要的常用的PHP环境部署套件比较
- 漫画 | 如何让产品经理不改需求?
- html图片浮动特效
- PHP表单(get,post)提交方式
- CTO技术前瞻性预测:移动互联网十大趋势
- C语言关键字之循环语句for语句
热门文章
- mysql mariadb 10.4_MariaDB 10.4.1发布,流行的MySQL分支版本
- fastjson maven依赖_Spring Boot 使用 Maven 定制一个 parent 简化开发
- 百度地图java批量获得经纬度_从百度地图API接口批量获取地点的经纬度
- 一网打尽软件测试面试必问的所有Web测试点,你不知道的这都有!
- Fiddler——模拟限速
- Python协程原理介绍及基本使用
- mysql tcmalloc jemalloc_tcmalloc jemalloc 和ptmalloc 对比
- arcgis分隔图层重复出文件_ArcGIS制图技巧讲解,处理好细节才能让图更专业!
- mosaic数据增强_YoloV4当中的Mosaic数据增强方法(附代码详细讲解)
- Matlab条形图bar横坐标间距设置