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文件默认用逗号分隔各列. 有了基础的了解 ...
随机推荐
- mybatis 异常处理:Invalid bound statement (not found)
mybatis 的使用过程中提示错误: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): ...
- jquery datatable 获取当前分页的数据
使用jquery datatable 遇到分页分别求和时,找了半天才找到获取当前分页数据的方法,以此总结 var table=$('#example').DataTable( { "pagi ...
- 64位系统中为VS2012添加OpenGL工具包
之前一直都是按照网上教程进行的添加,以前使用的系统是32位的,所以一直都没有问题.最近换了64位系统,要使用到OpenGL,于是就又进行了原来的工作,但进行测试时,老是失败: 但是在目录:" ...
- Ubuntu 上配置静态的ip
先关掉或卸掉 network-manager.然后,改动/etc/network/interfaces 如下:(由于是静态ip,你当然知道把例子中那些东西改成你自己的)auto lo eth0ifac ...
- zabbix 密码忘记了如何恢复
1.进入数据库 2.使用zabbix的数据库 use zabbix: 3.查看表信息 show tables; 4.搜索users表 select * from users; 5.修改userid为1 ...
- Android Studio 安装与使用ADB wifi 无线调试
首先,安装ADB WIFI File->Settings->Plugins 其次,用USB连接手机与电脑(并开启手机的调试模式) 任务栏若无提示,即可拔下USB线,开始无线调试 任务栏若是 ...
- Python周末21天笔记
模块一: 基础相互据类型之间的相互转换 1. 字符串str 与 列表 list 与字典 dict 以及 元祖tuple的转换 例一: 把字典的key和value的值取出来,按照顺序存入到list中 d ...
- 栈经典列题:Rails
解题心得: 1.这题是先进后出的顺序,所以使用栈(先进后出表). 2.搞清楚题意,需要达成的序列和进入的序.不要弄混了. 3.思维混乱的时候要冷静,冷静,冷静~~~~! 题目: Description ...
- 最短路径:HDU2006-一个人的旅行(多个起点,多个终点)
题目: 一个人的旅行 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- 在VIM 里面编辑和保存
#查看a.sh 的内容 cat a.sh #编辑a.sh的内容 键入i,下面会出现 insert,输入内容之后按下esc会退出编辑模式(此时下面的insert没有了) 再输入:wq保存