CSV文件操作(一)

准备

1.环境:Windows, python 3
2.工具:sublime_text3或者pycharm
3.教材:python 数据分析基础

目标

1.使用python基础语言实现
2.使用内置的CSV模块实现
3.使用pandas实现

建议

1.先练好1和2,再学pandas
2.教材地址 https://pan.baidu.com/s/1nv9clmh(密码1234)
3.教材示例及代码下载 https://github.com/cbrownley/foundations-for-analytics-with-python/blob/master/csv/supplier_data.csv

CSV文件操作(一)_第1张图片
第一步

第二步

练习1:向CSV文件中写入数据

1.1.1 数据是CSV格式类型,则可直接写入

代码展示
运行三次的结果

1.2.1 输入的数据类型是列表或元组

CSV文件操作(一)_第2张图片
代码展示

运行三次的结果同上

1.2.2 csv模块

CSV文件操作(一)_第3张图片
QQ截图20180411131533.png
CSV文件操作(一)_第4张图片
运行三次的结果

练习2:将源文本数据写入新的CSV文件

CSV文件操作(一)_第5张图片
示例文本

2.1.1 python基础语言

CSV文件操作(一)_第6张图片
QQ截图20180411132734.png

2.1.3 pandas模块

CSV文件操作(一)_第7张图片
QQ截图20180411134215.png

练习3:筛选特定的行

1.行中的值满足某个条件
2.行中的值属于某个集合(比如性别男,日期为星期五等)
3.行中的值匹配于某个模式(正则表达式)

CSV文件操作(一)_第8张图片
QQ截图20180410104434.png

3.1 保留Part Number大于5000的行

3.1.1 python基础语言

CSV文件操作(一)_第9张图片
QQ截图20180410110801.png

值得注意的是字符串之间是可以直接做比较的.


QQ截图20180410112106.png

运行结果:


CSV文件操作(一)_第10张图片
QQ截图20180410112226.png

3.2 保留PurchaseDate 为1/30/14和2002/3/14的行

3.2.1 python基础语言

CSV文件操作(一)_第11张图片
QQ截图20180410122320.png

运行结果:

CSV文件操作(一)_第12张图片
QQ截图20180410122431.png

看似很完美,但实际上这里面隐藏了一个大问题,就是当列表中含有额外的逗号时,以上分析脚本将会失败,不信试试:将源文件最后两行的日期改为符合条件

QQ截图20180410123225.png

再运行一次上面的程序,你会发现最后两行符合条件但没有写入到输出文件,问题出在哪里了呢?我们把a_date打印出来看看:

CSV文件操作(一)_第13张图片
QQ截图20180410123804.png

问题所在:


CSV文件操作(一)_第14张图片
QQ截图20180410124902.png

3.2.2 使用内置的CSV模块

CSV文件操作(一)_第15张图片
QQ截图20180411141956.png

运行结果:


CSV文件操作(一)_第16张图片
QQ截图20180410131232.png

3.2.3 使用pandas模块

QQ截图20180410135546.png

运行结果:


CSV文件操作(一)_第17张图片
QQ截图20180410135817.png

3.3 保留发票号由"50-"开头的行

3.3.2 使用内置的CSV模块

CSV文件操作(一)_第18张图片
QQ截图20180410143209.png

红圈部分使用CSV模块时固定写法.

CSV文件操作(一)_第19张图片
运行结果

3.3.3使用pandas模块

QQ截图20180410144140.png
CSV文件操作(一)_第20张图片
运行结果

你可能感兴趣的:(CSV文件操作(一))