Python数据分析基础——读写CSV文件2

2.2筛选特定的行:

  • 行中的值满足某个条件
  • 行中的值属于某个集合
  • 行中的值匹配于某个模式(即:正则表达式)

  2.2.1:行中的值满足于某个条件:

  • 基础python版:

    

 1 #!/usr/bin/env python3  
 2 import csv
 3 import sys
 4
 5 input_file = sys.argv[1]
 6 output_file = sys.argv[2]
 7
 8 with open(input_file, ‘r‘, newline = ‘‘) as csv_in_file:
 9     with open(output_file, ‘w‘, newline = ‘‘) as csv_out_file:
10         filereader = csv.reader(csv_in_file)
11         filewriter = csv.writer(csv_out_file)
12         header = next(filereader)  # 使用CSV模块的next函数读出输入文件的第一行
13         filewriter.writerow(header)  # 将标题写入输出文件
14         for row_list in filereader:
15             supplier = str(row_list[0]).strip()  # 取出每行数据中的供应商名字,赋值给supplier变量
16             cost = str(row_list[3]).strip(‘$‘).replace(‘,‘, ‘‘)  # 使用列表索引
17             if supplier ==‘Supplier Z‘ or float(cost) > 600.0:
18                 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:

    

 1 #!/usr/bin/env python3  #  需求目的:保留那些购买日属于[‘1/20/14‘,‘1/30/2014‘]
 2 import csv
 3 import sys
 4
 5 input_file = sys.argv[1]
 6 output_file = sys.argv[2]
 7
 8 important_dates = [‘1/20/2014‘, ‘1/30/2014‘]  #  创建了一个列表的名为important_dates的集合,important_dates是一个列表变量,它就是要属于的集合
 9
10 with open(input_file, ‘r‘, newline = ‘ ‘) as csv_in_file:
11     with open(output_file, ‘w‘, newline = ‘ ‘) as csv_out_file:
12         filereader = csv.reader(csv_in_file)  #  使用CSV模块,的reader函数,创建一个文件读取对象,名为filereader,它可以用于读取文章中的行
13         filewriter = csv.writer(csv_out_file)  #  使用CSV模块的writer函数,创建了一个文件输出对象,名为filewriter,他可以用于将这个对象的数据写入输出文件
14         header = next(filereader)  #  使用CSV模块的next函数,读出输入文件的第一行
15         filewriter.writerow(header)  #  将header——标题行,写入输出文件
16         for row_list in filereader:  #  遍历读取的文章的每一行
17             a_date = row_list[4]  #  得到每一行的第5列信息,即为每一行的购买的信息,并将其赋值给变量a_date;这里使用的是索引值4
18             if a_date in important_dates:  #  判断变量a_date是否属于important_dates这个集合
19                 filewriter.writerow(row_list)  #  如果是,则将该行数据写入输出文件

pandas:

  

 1 #!/usr/bin/env python3
 2
 3 import pandas as pd
 4 import sys
 5
 6 input_file = sys.argv[1]
 7 output_file = sys.argv[2]
 8
 9 data_frame = pd.read_csv(input_file)  #  读取输入文件,将其读取成dataframe的形式
10 data_frame_value_in_set = data_frame.loc[data_frame[‘Purchase Date‘].isin(important_dates), :]  #  pandas的简洁命令:isin()
11
12 data_frame_value_in_set.to_csv(output_file,index = False)  #  将data_frame_value_in_set的变量值,转换成CSV的形式,写入到输出文件中

行中的值,匹配于某个正则表达式:

  • 基础python
     1 #!/usr/bin/env python3
 2 import csv
 3 import re  #  导入正则表达式模块(re)
 4 import sys
 5 input_file = sys.argv[1]
 6 output_file = sys.argv[2]
 7 pattern = re.compile(r‘(?P<my_pattern_group>^001-.*)‘, re.I)  #   使用re模块的compile函数,创建一个名为pattern的正则表达式的变量
 8 with open(input_file, ‘r‘, newline = ‘ ‘) as csv_in_file:
 9     with open(output_file, ‘w‘, newline = ‘ ‘) as csv_in_file:
10         filereader = csv.reader(csv_in_file)
11         filewriter = csv.writer(csv_out_file)
12         header = next(filereader)
13         fliewriter.writerow(header)
14         for row_list in filereader:
15             invoice_number = row_list[1]     #
16             if pattern.search(invoice_number):   #   使用re模块的search函数在invoice_number的值中寻找模式
17                 filewriter.writerow(row_list)   #   如果模式出现在invoice_number中,就将这行内容写入输出文件中
  • pandas

    

 1 #!/usr/bin/env python3
 2
 3 import pandas as pd
 4 import sys
 5
 6 input_file = sys.argv[1]
 7 output_file = sys.argv[2]
 8
 9 data_frame = pd.read_csv(input_file)
10 data_frame_value_matches_pattern = data_frame.loc[data_frame[‘Invoice Number‘].str.startswith("001-"), :]
11 data_frame_value_matches_pattern.to_csv(output_file, index = False)

原文地址:https://www.cnblogs.com/tommyngx/p/8706417.html

时间: 2024-11-09 07:03:54

Python数据分析基础——读写CSV文件2的相关文章

用opencsv文件读写CSV文件

首先明白csv文件长啥样儿: 用excel打开就变成表格了,看不到细节 推荐用其它简单粗暴一点儿的编辑器,比如Notepad++, csv文件内容如下: csv文件默认用逗号分隔各列. 有了基础的了解就进入主题,用Opencsv读写csv文件 读:CSVReader 写:CSVWriter 下面分别来看一下opencsv为我们提供的方法(这里只介绍最常用的几个): 读:CSVReader 构造器中涉及三个参数: reader:就是读取文件的流对象,常用的有BufferedReader,Input

python3使用csv模块读写csv文件

python3使用csv模块读写csv文件 读取csv文件: import csv #打开文件,用with打开可以不用去特意关闭file了,python3不支持file()打开文件,只能用open() with open("XXX.csv","r",encoding="utf-8") as csvfile: #读取csv文件,返回的是迭代类型 read = csv.reader(csvfile) for i in read: print(i) 存

利用JavaCSV API来读写csv文件

http://blog.csdn.net/loongshawn/article/details/53423121 http://javacsv.sourceforge.net/ 转载请注明来源-作者@loongshawn:http://blog.csdn.net/loongshawn/article/details/53423121 1 背景 CSV文件的读写其实是有很多方法的,在这里介绍一种利用第三方jar包来读写CSV文件的方法. 日常工作中,如果有现成的第三方工具包,咱最好还是用现成的,有

C/C++读写csv文件

博客转载自:http://blog.csdn.net/u012234115/article/details/64465398 C++ 读写CSV文件,注意一下格式即可 #include <iostream> #include <string> #include <vector> #include <fstream> #include <sstream> using namespace std; int main() { // 写文件 ofstre

Python数据分析基础与实践 Python数据分析实践课程 Python视频教程

课程简介: Python数据分析基础与实践 Python数据分析实践课程 Python视频教程----------------------课程目录------------------------------├<章节1Python概况>├<章节2Python安装>├<章节3数据准备>├<章节4数据处理>├<章节5数据可视化>├<章节6网页数据抓取>├<章节7连接MySQL>├<章节8数据分析> 下载地址:百度网盘

分享《Python数据分析基础教程:NumPy学习指南(第2版)》高清中文PDF+英文PDF+源代码

下载:https://pan.baidu.com/s/1YSD97Gd3gmmPmNkvuG0eew更多资料分享:http://blog.51cto.com/3215120 <Python数据分析基础教程:NumPy学习指南(第2版)>高清中文PDF+高清英文PDF+源代码 高清中文版PDF,249页,带目录和书签,文字能够复制粘贴:高清英文版PDF,310页,带目录和书签,文字能够复制粘贴:中英文两版可以对比学习.配套源代码:经典书籍,讲解详细:其中高清中文版如图: 原文地址:http://

Numpy学习:《Python数据分析基础教程NumPy学习指南第2版》中文PDF+英文PDF+代码

NumPy是一个优秀的科学计算库,提供了很多实用的数学函数.强大的多维数组对象和优异的计算性能,不仅可以取代Matlab和Mathematica的许多功能,而且业已成为Python科学计算生态系统的重要组成部分.但与这些商业产品不同,它是免费的开源软件. 推荐学习<Python数据分析基础教程NumPy学习指南第2版>,通过书中丰富的示例,学会Matplotlib绘图,并结合使用其他Python科学计算库(如SciPy和Scikits),让工作更有成效,让代码更加简洁而高效. 学习参考: &l

java读写CSV文件

java读写CSV文件 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 读取csv文件中数据 将数据保存为csv文件格式 读取CSV文件中的数据 import java.io.*; import java.util.ArrayList; import java.util.StringTokenizer; public class readCSV { void readCSV(String readpath, ArrayList Nolist, ArrayList Dnalist

Python数据分析——基础02

Python数据分析--基础02 元组(tuple) 元组是一个固定长度,不可改变的序列对象. 创建元组 用逗号分隔一列值 tup = 1,2,3 # (1, 2, 3) 用圆括号 tup = (1,2,3), (4,5,6,7) # ((1, 2, 3), (4, 5, 6, 7)) 使用tuple()可以将任意序列或迭代器转换成元组 tuple([1,2,3,4]) # (1, 2, 3, 4) tuple('string') # ('s', 't', 'r', 'i', 'n', 'g')