数据可视化基础专题(三):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是欧洲中期天气预报中心 ...
随机推荐
- Vim配合Shell自动上传ftp
shell代码: #!/bin/bash #网站配置 a1=('本地目录;主机;yonghuming;mima;远程目录' '本地目录;主机;user;pwd;远程目录') #选取的网站配置 web= ...
- 凭这份pdf让我轻松拿下了蚂蚁金服、字节跳动、小米等大厂的offer
关于程序员,除了做项目来提高自身的技术之外,还有一种提升自己的专业技能就是:多!看!书! 小编整理出一篇Java进阶架构师之路的核心知识,同时也是面试时面试官必问的知识点,篇章也是包括了很多知识点,其 ...
- yaml读取封装
#!/usr/bin/env python # -*- coding: utf-8 -*- """ 对yaml格式的配置文件的操作 """ ...
- BUAA_OO_2020_Unit2_总结博客
BUAA_OO_2020_Unit2_总结 2020年春季学期第八周,OO第二单元落下帷幕,三次多线程任务作罢,萌新在OO的世界里又迈出了艰难但有意义的一步,下作总结: 一.三次作业设计策略 回顾三次 ...
- Happens-Before原则
Java内存模型是通过各种操作来定义的,包括对变量的读/写操作,监视器的加锁和释放操作,以及线程的启动和合并操作.JMM为程序中所有的操作定义了一个偏序关系,称之为Happens-Before.要想保 ...
- Unity中数据的存储与交互的初步分析(PlayerPrefs,Dictionary,JsonUnility)
1.PlayerPrefs PlayerPrefs.SetString(key,Value); PlayerPrefs.GetString(key,Value);字符串类型 PlayerPref ...
- leetcode27之移除元素
题目描述: 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度. 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改 ...
- 你想不到的沙雕,10行代码Python实现GIF图倒放,每天的快乐源泉
前言 GIF图现在已经融入了我们的日常网络生活,微信群.QQ群.朋友圈......一言不合就斗图,你怕了吗?不用担心,只要学会了Python之GIF倒放技能,你就是“斗图王”. 咱们直接开始本文的内容 ...
- 黎活明8天快速掌握android视频教程--19_采用ListView实现数据列表显示
1.首先整个程序也是采用mvc的框架 DbOpenHelper 类 package dB; import android.content.Context; import android.databas ...
- 前后端分层架构MVC&MVVM
早期 特点 页面由 JSP.PHP 等工程师在服务端生成 JSP 里揉杂大量业务代码 浏览器负责展现,服务端给什么就展现什么,展现的控制在 Web Server 层 优点 简单明快,本地起一个 Tom ...