数据可视化基础专题(三):Pandas基础(二) csv导入与导出
1.csv导入
1.1 csv导入
.read_csv()函数
pandas.read_csv(filepath_or_buffer: Union[str, pathlib.Path, IO[~AnyStr]], sep=',', delimiter=None, header='infer',
names=None, index_col=None, usecols=None, squeeze=False, prefix=None, mangle_dupe_cols=True, dtype=None, engine=None,
converters=None, true_values=None, false_values=None, skipinitialspace=False, skiprows=None, skipfooter=0, nrows=None,
na_values=None, keep_default_na=True, na_filter=True, verbose=False, skip_blank_lines=True, parse_dates=False,
infer_datetime_format=False, keep_date_col=False, date_parser=None, dayfirst=False, cache_dates=True, iterator=False,
chunksize=None, compression='infer', thousands=None, decimal: str = '.', lineterminator=None, quotechar='"', quoting=0,
doublequote=True, escapechar=None, comment=None, encoding=None, dialect=None, error_bad_lines=True, warn_bad_lines=True,
delim_whitespace=False, low_memory=True, memory_map=False, float_precision=None)
常用参数:
filepath_or_buffer : various
- 文件路径 (a
str,pathlib.Path, orpy._path.local.LocalPath), URL (including http, ftp, and S3 locations), 或者具有read()方法的任何对象 (such as an open file orStringIO).
sep : str, 默认 read_csv()分隔符为',', read_table()方法,分隔符为 \t
- 分隔符的使用. 如果分隔符为
None,虽然C不能解析,但python解析引擎可解析,这意味着python将被使用,通过内置的sniffer tool自动检测分隔符,csv.Sniffer. 除此之外,字符长度超过1并且不同于's+'的将被视为正则表达式,并且将强制使用python解析引擎。需要注意的是,正则表达式易于忽略引用数据(主要注意转义字符的使用) 例如:'\\r\\t'.
delimiter : str, default None
- sep的替代参数.
delim_whitespace : boolean, default False
- 指定是否将空格 (e.g.
' 'or'\t')当作delimiter。 等价于设置sep='\s+'. 如果这个选项被设置为True,就不要给delimiter传参了.
列、索引、名称
header : int or list of ints, default 'infer'
当选择默认值或
header=0时,将首行设为列名。如果列名被传入明确值就令header=None。注意,当header=0时,即使列名被传参也会被覆盖。标题可以是指定列上的MultiIndex的行位置的整数列表,例如
[0,1,3]。在列名指定时,若某列未被指定,读取时将跳过该列 (例如 在下面的例子中第二列将被跳过).注意,如果skip_blank_lines=True,此参数将忽略空行和注释行, 因此 header=0 表示第一行数据而非文件的第一行.
names : array-like, default None
- 列名列表的使用. 如果文件不包含列名,那么应该设置
header=None。 列名列表中不允许有重复值.
index_col : int, str, sequence of int / str, or False, default None
DataFrame的行索引列表, 既可以是字符串名称也可以是列索引. 如果传入一个字符串序列或者整数序列,那么一定要使用多级索引(MultiIndex).注意: 当
index_col=False,pandas不再使用首列作为索引。例如, 当你的文件是一个每行末尾都带有一个分割符的格式错误的文件时.
usecols : list-like or callable, default None
返回列名列表的子集. 如果该参数为列表形式, 那么所有元素应全为位置(即文档列中的整数索引)或者 全为相应列的列名字符串(这些列名字符串为names参数给出的或者文档的
header行内容).例如,一个有效的列表型参数 usecols 将会是是[0, 1, 2]或者['foo', 'bar', 'baz'].元素顺序可忽略,因此
usecols=[0, 1]等价于[1, 0]。如果想实例化一个自定义列顺序的DataFrame,请使用pd.read_csv(data, usecols=['foo', 'bar'])[['foo', 'bar']],这样列的顺序为['foo', 'bar']。如果设置pd.read_csv(data, usecols=['foo', 'bar'])[['bar', 'foo']]那么列的顺序为['bar', 'foo']。
encoding : str, default None
- Encoding to use for UTF when reading/writing (e.g.
'utf-8')
使用 read_csv 导入 CSV 的文件:
import pandas as pd df = pd.read_csv(r"D:\Development\Projects\python-learning\python-data-analysis\pandas-demo\result_data.csv")
print(df) # 输出结果
plantform read_num fans_num rank_num like_num create_date
0 cnblog 215 0 118 0 23/11/2019 23:00:10
1 juejin 177 0 -2 1 23/11/2019 23:00:03
2 csdn 1652 69 0 24 23/11/2019 23:00:02
3 cnblog 650 3 191 0 22/11/2019 23:00:15
4 juejin 272 3 -23 1 22/11/2019 23:00:02
.. ... ... ... ... ... ...
403 juejin 212 0 -1 2 20/2/2020 23:00:02
404 csdn 1602 1 0 1 20/2/2020 23:00:01
405 cnblog 19 0 41 0 21/2/2020 23:00:05
406 juejin 125 1 -4 0 21/2/2020 23:00:02
407 csdn 1475 8 0 3 21/2/2020 23:00:02 [408 rows x 6 columns]
可以看到,和上面的 Excel 导入的数据保持一致,只是后面的时间日期类型格式化有点区别。
其余的操作和上面介绍的 Excel 是一样的,这里就不一一列举了,有一个需要注意的点是,编码格式的指定,这时我们需要设置 encoding 参数,如果不做设置,那么默认的指定格式是 utf-8 的,因为常用的格式除了 utf-8 还会有 gbk 、 gb2312 等等。
import pandas as pd # 指定编码格式
df = pd.read_csv(r"D:\Development\Projects\python-learning\python-data-analysis\pandas-demo\result_data.csv", encoding='utf-8')
print(df) # 输出结果
plantform read_num fans_num rank_num like_num create_date
0 cnblog 215 0 118 0 23/11/2019 23:00:10
1 juejin 177 0 -2 1 23/11/2019 23:00:03
2 csdn 1652 69 0 24 23/11/2019 23:00:02
3 cnblog 650 3 191 0 22/11/2019 23:00:15
4 juejin 272 3 -23 1 22/11/2019 23:00:02
.. ... ... ... ... ... ...
403 juejin 212 0 -1 2 20/2/2020 23:00:02
404 csdn 1602 1 0 1 20/2/2020 23:00:01
405 cnblog 19 0 41 0 21/2/2020 23:00:05
406 juejin 125 1 -4 0 21/2/2020 23:00:02
407 csdn 1475 8 0 3 21/2/2020 23:00:02 [408 rows x 6 columns]
这里的编码格式是 utf-8 ,所以这里对编码格式的设置是 encoding='utf-8'
1.2 CSV 导出
在导出 CSV 的时候,要使用到的方法是 to_csv() ,和上面导出 Excel 实际上相差并不大,一样是要先设置文件路径,接下来可以设置索引、导出的列、分隔符号、编码格式、缺失值等等。
还是先来看下 to_csv() 语法
DataFrame.to_csv(self, path_or_buf: Union[str, pathlib.Path, IO[~AnyStr], NoneType] = None,
sep: str = ',', na_rep: str = '', float_format: Union[str, NoneType] = None,
columns: Union[Sequence[Union[Hashable, NoneType]], NoneType] = None, header: Union[bool, List[str]] = True, index: bool = True,
index_label: Union[bool, str, Sequence[Union[Hashable, NoneType]], NoneType] = None, mode: str = 'w', encoding: Union[str, NoneType] = None,
compression: Union[str, Mapping[str, str], NoneType] = 'infer', quoting: Union[int, NoneType] = None, quotechar: str = '"',
line_terminator: Union[str, NoneType] = None, chunksize: Union[int, NoneType] = None, date_format: Union[str, NoneType] = None, doublequote: bool = True,
escapechar: Union[str, NoneType] = None, decimal: Union[str, NoneType] = '.') → Union[str, NoneType]
可以看到的是 to_csv() 比较 to_excel() 有着更多的参数,实际上,我们一些常用的参数并不多,小编下面接着给出一个比较复杂的导出示例:
df.to_csv(path_or_buf=r'D:\Development\Projects\demo.csv', # 设置导出路径
index=False, # 设置索引不显示
sep=',', # 设置分隔符号
na_rep='', # 缺失值处理
columns=['编号', '姓名'], # 设置要导出的列
encoding='utf-8', # 设置编码格式
)
数据可视化基础专题(三):Pandas基础(二) csv导入与导出的更多相关文章
- 数据可视化实例(三): 散点图(pandas,matplotlib,numpy)
关联 (Correlation) 关联图表用于可视化2个或更多变量之间的关系. 也就是说,一个变量如何相对于另一个变化. 散点图(Scatter plot) 散点图是用于研究两个变量之间关系的经典的和 ...
- Mysql基础(三):MySQL基础数据类型、完整性约束、sql_mode模式
目录 2.MySQL基础数据类型.完整性约束.sql_mode模式 1. MySQL常用数据类型 2. 完整性约束 3. MySQL的sql_mode模式说明以及设置 2.MySQL基础数据类型.完整 ...
- 数据可视化之PowerQuery篇(十二)客户购买频次分布
https://zhuanlan.zhihu.com/p/100070260 商业数据分析通常都可以简化为对数据进行筛选.分组.汇总的过程,本文通过一个实例来看看PowerBI是如何快速完成整个过程的 ...
- 数据可视化之powerBI入门(十二)PowerBI中最重要的函数:CALCULATE
https://zhuanlan.zhihu.com/p/64382849 介绍DAX的时候,特别强调过一个重要的函数:CALCULATE,本文就来揭秘这个函数的计算原理以及它是如何影响上下文的. C ...
- 数据可视化之powerBI技巧(十二)学会这几个度量值,轻松获取前N名
数据中的明细项一般都有很多,可是我们关注的往往只是前几名,所以在报表中只展示关注的部分,就十分常用. 有了上篇(这几个示例,帮你深入理解RANKX排名)关于排名的铺垫,仅显示前N名就简单多了. 依然以 ...
- 数据可视化之DAX篇(十二)掌握时间智能函数,同比环比各种比,轻松搞定!
https://zhuanlan.zhihu.com/p/55841964 时间可以说是数据分析中最常用的独立变量,工作中也常常会遇到对时间数据的对比分析.假设要计算上年同期的销量,在PowerBI中 ...
- 表格类型数据,Excel csv导入,导出操作
import pandas # 创建表格格式# ad = pandas.DataFrame({"a": range(1, 10), "b": range(10, ...
- 前端er必须掌握的数据可视化技术
又是一月结束,打工人准时准点的汇报工作如期和大家见面啦.提到汇报,必不可少的一部分就是数据的汇总.分析. 作为一名合格的社会人,我们每天都在工作.生活.学习中和数字打交道.小到量化的工作内容,大到具体 ...
- python grib气象数据可视化
基于Python的Grib数据可视化 利用Python语言实现Grib数据可视化主要依靠三个库——pygrib.numpy和matplotlib.pygrib是欧洲中期天气预报中心 ...
随机推荐
- kafka基本概念和hello world搭建
什么是kafka? Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写.Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据 ...
- C# 9.0 新特性之目标类型推导 new 表达式
阅读本文大概需要 2 分钟. 呼~~,每次过完一个周末,写作就失去了动力,一两天才能缓过来.尽管如此,还是要坚持写好每一篇文章的.宁缺毋滥嘛,宁愿发文的频率低一点,也要保证文章的质量,至少排版不能差, ...
- 01.DRF-Web应用模式
Web应用模式 在开发Web应用中,有两种应用模式: 前后端不分离 前后端分离 1 前后端不分离 在前后端不分离的应用模式中,前端页面看到的效果都是由后端控制,由后端渲染页面或重定向,也就是后端需要控 ...
- 基于docker-compose部署jumpserver
基于docker-compose部署jumpserver 组件说明 Jumpserver 为管理后台, 管理员可以通过 Web 页面进行资产管理.用户管理.资产授权等操作, 用户可以通过 Web 页面 ...
- springboot mybatis plus多数据源轻松搞定 (上)
在开发中经常会遇到一个程序需要调用多个数据库的情况,总得来说分为下面的几种情况: 一个程序会调用不同结构的两个数据库. 读写分离,两个数据结构可能一样高,但是不同的操作针对不同的数据库. 混合情况,既 ...
- node.js 安装方法 以及 用原声搭建服务器
node.js 安装方法: 第一步: 64位的安装包网址: https://nodejs.org/dist/v4.4.3/node-v4.4.3-x64.msi 第二步: 进入命令提示框 输入 ...
- loadRunnner中90%的响应时间
参考博客https://blog.csdn.net/lengyue_112/article/details/1095320?utm_source=blogxgwz4 LR在场景执行完了会出个报告,其中 ...
- python0.1
python基础 python是一种高级编程语言,而编程语言分为3种 编程语言 编程语言是一种人与计算机沟通的工具. 编程就是就将人的需求通过攥写编程语言命令计算机完成指令. 编程的意义在于将人类的生 ...
- Python3-random模块-生成伪随机数
Python3中的random模块可以生成一个伪随机数 常用的就三个模块函数 random.random() 返回0-1之间的一个随机数 random.randrange(i, j) 返回一个随机数 ...
- 【转载】npx 真香
npx 主要提供了一些便捷操作: 调用项目安装的模块 避免全局安装模块 使用不同版本的 node 执行 GitHub 源码 原文地址:http://www.ruanyifeng.com/blog/20 ...