Python–csv文件处理建议收藏

CSV(Comma-SeparatorValues)逗号分割值,由于是纯文本文件,任何编辑器都可以打开。下面用csv和pandas两种方式进行csv文件操作原始csv文件内容1.csv包操作c

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

全栈程序员社区此处内容已经被作者隐藏,请输入验证码查看内容
验证码:
请关注本站微信公众号,回复“验证码”,获取验证码。在微信里搜索“全栈程序员社区”或者“www_javaforall_cn”或者微信扫描右侧二维码都可以关注本站微信公众号。

CSV(Comma-Separator Values)逗号分割值,由于是纯文本文件,任何编辑器都可以打开。下面用csv和pandas两种方式进行csv文件操作  

原始csv文件内容

Supplier Name,Invoice Number,Part Number,Cost,Purchase Date
Supplier X,001-1001,2341,$500.00 ,1/20/14
Supplier X,001-1001,2341,$500.00 ,1/20/14
Supplier X,001-1001,5467,$750.00 ,1/20/14
Supplier X,001-1001,5467,$750.00 ,1/20/14
Supplier Y,50-9501,7009,$250.00 ,1/30/14
Supplier Y,50-9501,7009,$250.00 ,1/30/14
Supplier Y,50-9505,6650,$125.00 ,2002/3/14
Supplier Y,50-9505,6650,$125.00 ,2002/3/14
Supplier Z,920-4803,3321,$615.00 ,2002/3/14
Supplier Z,920-4804,3321,$615.00 ,2002/10/14
Supplier Z,920-4805,3321,"$6,015.00 ",2/17/14
Supplier Z,920-4806,3321,"$1,006,015.00 ",2/24/14

1. csv包操作csv文件

#coding=utf-8

import sys
import csv
import re

read_file = sys.argv[1]
write_file = sys.argv[2]

with open(read_file, "r") as readfile:
    with open(write_file, "w") as writefile:
        reader = csv.reader(readfile, delimiter=",")
        writer = csv.writer(writefile, delimiter=",")
        header = next(reader)
        writer.writerow(header)
        for rowlist in reader:
            #通过正则表达是进行行匹配
            if re.match(r"^001-*.", str(rowlist[1])):
                print (rowlist)
                writer.writerow(rowlist)

>>> D:\Pystu>python parsecsvfile.py supplier_data.csv ceshi.csv
>>> Supplier Name,Invoice Number,Part Number,Cost,Purchase Date
>>> Supplier X,001-1001,2341,$500.00 ,1/20/14
>>> Supplier X,001-1001,2341,$500.00 ,1/20/14
>>> Supplier X,001-1001,5467,$750.00 ,1/20/14
>>> Supplier X,001-1001,5467,$750.00 ,1/20/14

2. pandas包操作csv文件

#coding=utf-8

''' 运用pandas包解析csv文件'''
import pandas
from pandas import Series,DataFrame
import sys

file_path = sys.argv[1]
write_path = sys.argv[2]
data_frame = pandas.read_csv(file_path)
#print (data_frame)

#注意str的使用
data_frame["Cost"] = data_frame["Cost"].str.replace(",", "").str.strip("$").astype(float)
#print (data_frame)

newa = data_frame.loc[data_frame["Cost"] > 600, :]
#print (newa)
newa.to_csv(write_path, index = False)

>>> D:\Pystu>python parse_csv_file_by_pandas.py supplier_data.csv ceshi.csv
>>> Supplier Name,Invoice Number,Part Number,Cost,Purchase Date
>>> Supplier X,001-1001,5467,750.0,1/20/14
>>> Supplier X,001-1001,5467,750.0,1/20/14
>>> Supplier Z,920-4803,3321,615.0,2002/3/14
>>> Supplier Z,920-4804,3321,615.0,2002/10/14
>>> Supplier Z,920-4805,3321,6015.0,2/17/14
>>> Supplier Z,920-4806,3321,1006015.0,2/24/14

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/120209.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 硬阈值(Hard Thresholding)函数解读[通俗易懂]

    硬阈值(Hard Thresholding)函数解读[通俗易懂]题目:硬阈值(HardThresholding)函数解读1、硬阈值(HardThresholding)函数的符号    硬阈值(HardThresholding)并没有软阈值(SoftThresholding)那么常见,这可能是因为硬阈值解决的问题是非凸的原因吧。硬阈值与软阈值由同一篇文献提出,硬阈值公式参见文献【1】的式(11):     第一次邂逅硬阈值

    2022年6月12日
    58
  • 解除80端口占用_443端口和80端口被占用

    解除80端口占用_443端口和80端口被占用有朋友问到,我本地phpnow,想使用80端口,但是每次都提示端口占用,有什么办法可以解决,那么最模板找出相关资料,提示如下:开始–运行–cmd进入命令提示符输入netstat-ano即可看到所有连接的PID之后在任务管理器中找到这个PID所对应的程序如果任务管理器中没有PID这一项,可以在任务管理器中选”查看”-“选择列”经常,我们在启动应用的时候发现系统需要的端口被别的程序占用,…

    2022年7月27日
    7
  • sqlmap命令详解_sql命令大全

    sqlmap命令详解_sql命令大全SQLMAP命令详解 Options(选项):–version显示程序的版本号并退出-h,–help显示此帮助消息并退出-vVERBOSE详细级别:0-6(默认为1)Target(目标):以下至少需要设置其中一个选项,设置目标URL。-dDIRECT直接连接到数据库。-uURL,–url=URL目标URL。-lLIST…

    2025年5月23日
    2
  • java数组转对象_java之数组和对象的互转「建议收藏」

    java数组转对象_java之数组和对象的互转「建议收藏」java*对象转bytes和bytes转对象**@projectorder*@fileNameByteUtil.java*@Description*@authorlight-zhang*@date2019年5月16日*@version1.0.0*/publicclassByteUtil{/***对象转数组**@paramobj*@return*/public…

    2025年10月19日
    5
  • pandas 读取excel文件

    pandas 读取excel文件pandas读取excel文件一read_excel()的基本用法二read_excel()的常用的参数:三示例1.IO:路径2.sheet_name:指定工作表名3.header:指定标题行4.names:指定列名5.index_col:指定列索引6.skiprows:跳过指定行数的数据7.skipfooter:省略从尾部的行数据8.dtype指定某些列的数据类型pandas读取excel文件使用的是read_excel方法。本文将详细解析read_excel方法

    2025年8月10日
    2
  • Pluralsight 学习感受

    Pluralsight 学习感受从2019年10月份开始,陆陆续续用了大半年的Pluralsight网站及手机App进行IT学习(MCSA2016,MicrosoftActiveDirectoryetc.),整

    2022年8月2日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号