Python数据分析基础——读写CSV文件2
2.2筛选特定的行:
- 行中的值满足某个条件
- 行中的值属于某个集合
- 行中的值匹配于某个模式(即:正则表达式)
2.2.1:行中的值满足于某个条件:
- 基础python版:
#!/usr/bin/env python3
import csv
import sys input_file = sys.argv[1]
output_file = sys.argv[2] with open(input_file, 'r', newline = '') as csv_in_file:
with open(output_file, 'w', newline = '') as csv_out_file:
filereader = csv.reader(csv_in_file)
filewriter = csv.writer(csv_out_file)
header = next(filereader) # 使用CSV模块的next函数读出输入文件的第一行
filewriter.writerow(header) # 将标题写入输出文件
for row_list in filereader:
supplier = str(row_list[0]).strip() # 取出每行数据中的供应商名字,赋值给supplier变量
cost = str(row_list[3]).strip('$').replace(',', '') # 使用列表索引
if supplier =='Supplier Z' or float(cost) > 600.0:
filewriter.writerow(row_list)
- pandas版:
#!/usr/bin/env python3 import pandas as pd
import sys input_file = sys.argv[1]
output_file = sys.argv[2] data_frame = pd.read_csv(input_file) data_frame['Cost'] = data_frame['Cost'] = data_frame['Cost'].str.strip('$').astype(float)
data_frame_value_meets_condition = data_frame.loc[(data_frame['Supplier Name'].str.contains('Z')) | (data_frame['Cost'] > 600.0), :] data_frame_value_meets_condition.to_csv(output_file, index = False)
2.2.2:行中的值属于某个集合:
- 基础python:
#!/usr/bin/env python3 # 需求目的:保留那些购买日属于['1/20/14','1/30/2014']
import csv
import sys input_file = sys.argv[1]
output_file = sys.argv[2] important_dates = ['1/20/2014', '1/30/2014'] # 创建了一个列表的名为important_dates的集合,important_dates是一个列表变量,它就是要属于的集合 with open(input_file, 'r', newline = ' ') as csv_in_file:
with open(output_file, 'w', newline = ' ') as csv_out_file:
filereader = csv.reader(csv_in_file) # 使用CSV模块,的reader函数,创建一个文件读取对象,名为filereader,它可以用于读取文章中的行
filewriter = csv.writer(csv_out_file) # 使用CSV模块的writer函数,创建了一个文件输出对象,名为filewriter,他可以用于将这个对象的数据写入输出文件
header = next(filereader) # 使用CSV模块的next函数,读出输入文件的第一行
filewriter.writerow(header) # 将header——标题行,写入输出文件
for row_list in filereader: # 遍历读取的文章的每一行
a_date = row_list[4] # 得到每一行的第5列信息,即为每一行的购买的信息,并将其赋值给变量a_date;这里使用的是索引值4
if a_date in important_dates: # 判断变量a_date是否属于important_dates这个集合
filewriter.writerow(row_list) # 如果是,则将该行数据写入输出文件
pandas:
#!/usr/bin/env python3 import pandas as pd
import sys input_file = sys.argv[1]
output_file = sys.argv[2] data_frame = pd.read_csv(input_file) # 读取输入文件,将其读取成dataframe的形式
data_frame_value_in_set = data_frame.loc[data_frame['Purchase Date'].isin(important_dates), :] # pandas的简洁命令:isin() data_frame_value_in_set.to_csv(output_file,index = False) # 将data_frame_value_in_set的变量值,转换成CSV的形式,写入到输出文件中
行中的值,匹配于某个正则表达式:
- 基础python
1 #!/usr/bin/env python3
import csv
import re # 导入正则表达式模块(re)
import sys
input_file = sys.argv[1]
output_file = sys.argv[2]
pattern = re.compile(r'(?P<my_pattern_group>^001-.*)', re.I) # 使用re模块的compile函数,创建一个名为pattern的正则表达式的变量
with open(input_file, 'r', newline = ' ') as csv_in_file:
with open(output_file, 'w', newline = ' ') as csv_in_file:
filereader = csv.reader(csv_in_file)
filewriter = csv.writer(csv_out_file)
header = next(filereader)
fliewriter.writerow(header)
for row_list in filereader:
invoice_number = row_list[1] #
if pattern.search(invoice_number): # 使用re模块的search函数在invoice_number的值中寻找模式
filewriter.writerow(row_list) # 如果模式出现在invoice_number中,就将这行内容写入输出文件中
pandas
#!/usr/bin/env python3 import pandas as pd
import sys input_file = sys.argv[1]
output_file = sys.argv[2] data_frame = pd.read_csv(input_file)
data_frame_value_matches_pattern = data_frame.loc[data_frame['Invoice Number'].str.startswith("001-"), :]
data_frame_value_matches_pattern.to_csv(output_file, index = False)
Python数据分析基础——读写CSV文件2的更多相关文章
- Python数据分析基础——读写CSV文件
1.基础python代码: #!/usr/bin/env python3 # 可以使脚本在不同的操作系统之间具有可移植性 import sys # 导入python的内置sys模块,使得在命令行中向脚 ...
- python学习之读写csv文件(使用pandas)
简介 逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本).纯文本意味着该文件是一个字符序 ...
- python3读写csv文件
python读取CSV文件 python中有一个读写csv文件的包,直接import csv即可.利用这个python包可以很方便对csv文件进行操作,一些简单的用法如下. 1. 读文件 csv_ ...
- (Python基础教程之十二)Python读写CSV文件
Python基础教程 在SublimeEditor中配置Python环境 Python代码中添加注释 Python中的变量的使用 Python中的数据类型 Python中的关键字 Python字符串操 ...
- 使用Python读写csv文件的三种方法
Python读写csv文件 觉得有用的话,欢迎一起讨论相互学习~Follow Me 前言 逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是 ...
- python读写csv文件
文章链接:https://www.cnblogs.com/cloud-ken/p/8432999.html Python读写csv文件 觉得有用的话,欢迎一起讨论相互学习~Follow Me 前言 逗 ...
- python习题_读写csv格式的文件
1.读写TXT文件 # *_* coding : UTF-8 *_* # 开发人员 : zfy # 开发时间 :2019/7/7 16:26 # 文件名 : lemon_10_file.PY # 开发 ...
- Python数据分析基础PDF
Python数据分析基础(高清版)PDF 百度网盘 链接:https://pan.baidu.com/s/1ImzS7Sy8TLlTshxcB8RhdA 提取码:6xeu 复制这段内容后打开百度网盘手 ...
- 用opencsv文件读写CSV文件
首先明白csv文件长啥样儿: 用excel打开就变成表格了,看不到细节 推荐用其它简单粗暴一点儿的编辑器,比如Notepad++, csv文件内容如下: csv文件默认用逗号分隔各列. 有了基础的了解 ...
随机推荐
- linux 命令——36 diff(转)
diff命令是 linux上非常重要的工具,用于比较文件的内容,特别是比较两个版本不同的文件以找到改动的地方.diff在命令行中打印每一个行的改动.最新版本的diff还支持二进制文件.diff程序的输 ...
- linux 命令——15 tail (转)
tail 命令从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新, ...
- 还在用SELECT COUNT统计数据库表的行数?Out了
在ABAP里我们如果想用代码获得一个数据库表里有多少条记录,常规做法是使用SELECT COUNT. 如果您使用的是HANA数据库,现在有一种新的办法可以达到同样的目的.HANA数据库里有一张名为m_ ...
- Android(java)学习笔记81:在TextView组件中利用Html插入文字或图片
1. TextView中利用Html插入文字或者图片: 首先我们看看代码: (1)activity_main.xml: <LinearLayout xmlns:android="htt ...
- Mybatis-延迟加载和缓存
延迟加载 概念: 就是在需要用到数据时才进行加载,不需要用到数据时就不加载数据.延迟加载也称懒加载. 好处:先从单表查询,需要时再从关联表去关联查询,大大提高数据库性能,因为查询单表要比关联查询多张表 ...
- Hive 之元数据库的三种模式
Hive 介绍 http://www.cnblogs.com/sharpxiajun/archive/2013/06/02/3114180.html Hive的数据类型和数据模型 http://www ...
- 1072: [SCOI2007]排列perm
Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 3000 Solved: 1875[Submit][Status][Discuss] Descript ...
- react与微信小程序
由组员完成 原文链接 都说react和微信小程序很像,但是像在什么部分呢,待我稍作对比. 生命周期 1.React React的生命周期在16版本以前与之后发生了重大变化,原因在于引入的React F ...
- linux命令学习-2
1. 对于已经在前台执行的命令,可以重新放到后台执行,首先按ctrl+z暂停已经运行的进程,然后使用jobs查看进程编号n:2. bg命令将停止的作业放到后台运行 bg %n3. kill -9 XX ...
- [转]webservice 采用SSL实现加密传输
本文转自:http://book.51cto.com/art/200906/129770.htm http://yeweiyun868.blog.163.com/blog/static/5637844 ...