Python数据分析基础之CSV文件(5)

选取连续的行

  有时,工作表的头部和尾部是我们不想处理的。在很多情况下,工作表头部是标题、作者信息等,尾部是来源、假设、附加说明、注意事项等,我们并不需要处理这些内容。在这时,我们可以用Python来选取CSV文件中连续的行。
  我们把之前的supplier_data.csv文件打开,在工作表头部和尾部分别加入一些不需要处理的内容,如下图所示。
在这里插入图片描述

1.基础Python

  要使用基础Python选取特定的行,我们需要创建一个变量row_counter来跟踪行索引。在上面的示例中,我们知道应该保留行索引大于或等于3并且小于或等于15的行。代码如下:

#!/usr/bin/env python3import csv
import sysinput_file = sys.argv[1]
output_file = sys.argv[2]row_counter = 0
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)for row in filereader:if 3 <= row_counter <= 15:filewriter.writerow([value.strip() for value in row])row_counter += 1

  如果我们对比一下之前的读写CSV文件的代码,不难发现上面的这个代码只是在原来的基础上稍微做了一下改动,引入变量row_counter,并且在遍历输入文件中所有的行时使用if语句跳过不需要的头部和尾部内容,只保留需要的行。
  对于输入文件的前3行,行索引值为0,1,2,此时if的判断结果为False,所以不执行if代码块,并将row_counter的值加1。对于输入文件的最后3行,行索引值为16,17,18,if的判断结果也是False,也不执行if代码块,并将row_counter的值加1。
  而对于想要保留的行,它们的行索引值为3~15,即row_counter在3和15之间。此时if判断结果为True,执行if代码块,处理这些行并将其写入输出文件。在列表生成式中,使用strip()函数除去每行两端的空格、制表符和换行符。
  我们在命令行窗口中运行这个脚本,并打开输出文件查看结果。
在这里插入图片描述

2.pandas

  在pandas模块中,drop()函数可以根据行索引或列标题来丢弃行或列。也就是说,我们只需要使用drop函数丢弃掉前3行和后3行(即行索引为0,1,2,16,17,18的行)即可达到目的。代码如下:

#!/usr/bin/env python3import pandas as pd
import sysinput_file = sys.argv[1]
output_file = sys.argv[2]data_frame = pd.read_csv(input_file, header=None)
data_frame = data_frame.drop([0, 1, 2, 16, 17, 18])
data_frame.columns = data_frame.iloc[0]
data_frame = data_frame.reindex(data_frame.index.drop(3))
data_frame.to_csv(output_file, index=False)

  pandas模块中的iloc函数功能强大,它可以根据行索引选取一个单独行作为列索引。reindex()函数可以为数据框重新生成索引。
  此处省略输出结果。

添加标题行

  有些时候,电子表格没有标题行,而我们却希望所有列都有列标题。使用Python脚本可以添加列标题。
  我们打开supplier_data.csv文件。删除掉标题行,并将其保存为supplier_data_no_header_row.csv。
在这里插入图片描述

1.基础Python

  代码如下:

#!/usr/bin/env python3import csv
import sysinput_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_list = ['Supplier Name', 'Invoice Number', 'Part Number', 'Cost', 'Purchase Date']filewriter.writerow(header_list)for row in filereader:filewriter.writerow(row)

  在上面的代码中,创建了一个列表变量header_list,其中包含了作为列标题的5个字符串。writerow()函数将这些列表值写入输出文件的第一行。
  我们在命令行窗口中运行这个脚本,并打开输出文件查看结果。
在这里插入图片描述

2.pandas

  pandas模块中的read_csv()函数可以直接指定输入文件不包含标题行,并可以提供一个列标题列表。代码如下:

#!/usr/bin/env python3import pandas as pd
import sysinput_file = sys.argv[1]
output_file = sys.argv[2]header_list = ['Supplier Name', 'Invoice Number', 'Part Number', 'Cost', 'Purchase Date']
data_frame = pd.read_csv(input_file, header=None, names=header_list)
data_frame.to_csv(output_file, index=False)

  此处省略输出结果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/353686.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Java设计模式—模板方法模式

前言&#xff1a;模板方法模式是模板模式的一个具体实现&#xff0c;它定义了一个抽象类&#xff0c;其中包含一个模板方法和若干个基本方法。其中模板方法定义了算法骨架&#xff0c;而基本方法则由子类来实现。因此&#xff0c;模板方法在定义算法的结构方面提供了支持&#…

一本书让你彻底搞懂安卓系统性能优化(文末送书5本)

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

MySQL redo log、undo log、binlog

MySQL是一个广泛使用的关系型数据库管理系统&#xff0c;它通过一系列的日志来保证数据的一致性和持久性。在MySQL中&#xff0c;有三个重要的日志组件&#xff0c;它们分别是redo log&#xff08;重做日志&#xff09;、undo log&#xff08;回滚日志&#xff09;和binlog&…

[04-07]最新精选绿色软件每日更新(小熊整理)

[主页浏览] 阿里云浏览器 1.6.5.2025 Beta [网络工具] QQ玫瑰小镇辅助 1.42 [网络工具] 拇指玩安卓游戏安装器 1.07 [网络工具] LOL撸至深(辅助工具) 1.12 [网络工具] 模拟人生3 金钱修改器 [网络工具] 三国群英传7 修改器 [网络工具] 生化危机5修改器 3.1 [网络工具] 生…

华为OD机试真题 Java 实现【高矮个子排队】【2023Q2 100分】,附详细解题思路

一、题目描述 现在有一队小朋友&#xff0c;他们高矮不同&#xff0c;我们以正整数数组表示这一队小朋友的身高&#xff0c;如数组{5,3,1,2,3}。 我们现在希望小朋友排队&#xff0c;以“高”“矮”“高”“矮”顺序排列&#xff0c;每一个“高”位置的小朋友要比相邻的位置高…

python 社区发现算法

转载&#xff1a;这个Python库超级棒啊&#xff0c;包含Louvain 算法、Girvan-Newman 算法等多种社区发现算法&#xff0c;还具有可视化功能_11205354的技术博客_51CTO博客 熟知社区发现算法&#xff0c;你不能错过这个 Python 库。它涵盖 Louvain 算法、Girvan-Newman 算法等…

AI版女网红“半藏森林”上线,服务项目让人意想不到

目前首批网红明星“AI克隆人”已提前上线&#xff0c;主营业务就是打造各种名人版AI聊天机器人&#xff0c;用户付费便可与之聊天。其后台报名参加AI克隆人的网红明星“全网粉丝总数已超过5亿”。该公司这波上线的网红明星AI克隆人&#xff0c;包括此前因“疑似插足他人恋情”&…

SSD源码总结

一、生成默认框 默认框的宽高 默认框的宽高是相对于原图的尺寸计算出来的。 默认框的中心 默认框的中心是相对于特征图的尺寸计算出来的。 二、将真实框分配给默认框 1、区分正负样本 1.1、选取正样本 计算真实框&#xff08;bboxs&#xff09;与每个默认框&#xff08;…

组合数学第五讲

Catalan numbers&#xff08;卡特兰数&#xff09; 先通过平衡括号引入卡特兰数序列的概念 1,2,5,14&#xff0c;...&#xff0c;这些数构成了卡特兰数序列&#xff0c;分别代表一共有i个括号时&#xff0c;括号排列构成的合法方案数【从左到右如果所有括号都能依次配对即是合…

Niagara—— Texture Sample 与 Particle Subuv 区别

一&#xff0c;Texture Sample 此节点是最基本的采样节点&#xff0c;依据UV坐标来采样Texture&#xff1b; MipValueMode&#xff0c;设置采样的Mipmap Level&#xff1b; None&#xff0c;根据当前Texture大小和物理缩放&#xff0c;自动选择合适的 Mipmap Level &#xff1b…

将数组中的每一位元素依次循环向后移一位

#include<iostream> using namespace std; int main() {int a[10],i,t,k;for(i0;i<10;i){cin>>a[i];}ka[9];for(i9;i>0;i--){ta[i];a[i]a[i-1];a[i-1]t;}a[0]k;for(i0;i<10;i){cout<<a[i]<<" ";}cout<<endl;return 0; }

定义一个函数,统计具有n个元素的一维数组中大于等于所有元素平均值的元素的个数并返回这个值

#include<iostream> using namespace std; int Count(double a[6],int n) {int average,i,s0,k0;for(i0;i<n;i){ssa[i];}averages/n;for(i0;i<n;i){if(a[i]>average)k;}return k; } int main() {int i,k,n;cout<<"请输入数组的大小n:"<<e…

(附源码)springboot自行车在线租赁管理系统 毕业设计101157

Springboot自行车在线租赁系统 摘 要 信息化社会内需要与之针对性的信息获取途径&#xff0c;但是途径的扩展基本上为人们所努力的方向&#xff0c;由于站在的角度存在偏差&#xff0c;人们经常能够获得不同类型信息&#xff0c;这也是技术最为难以攻克的课题。针对自行车租赁等…

240:vue+openlayers上传CSV文件,在地图上显示信息

第240个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+openlayers上传CSV文件,在地图显示,点击点后,显示点信息。 直接复制下面的 vue+openlayers源代码,操作2分钟即可运行实现效果; 注意如果OpenStreetMap无法加载,请加载其他来练习 文章目录 示例效果使用的csv…

阿啊-有意思的表情包

阿啊&#xff0c;英文名为Ah-Ah&#xff0c;诞生于2019年8月&#xff0c;是一只角度固定、不知是啥的二维生物(也可能不是生物)。准确的来说&#xff0c;这是一个系列表情包&#xff0c;从官网上可以下载&#xff0c;目前已经推出了好几个版本。当然&#xff0c;还支持在线制作…

如何制作搞笑表情包

表情包已经成为我们生活聊天中必不可少的一部分&#xff0c;但是如何制作搞笑表情包呢&#xff1f;自己制作的表情包更加独有个性&#xff0c;今天小编带大家看一波原创表情包的制作方法吧&#xff01;使用工具&#xff1a;电脑操作方法&#xff1a;1、首先在手机上也是可以制作…

红包表情包封面怎么制作,沙雕表情包怎么制作,送你行走的表情包

对于很多小伙伴来说&#xff0c;可能制作一个红包封面还是有一定难度的&#xff0c;不过发红包是可以插入表情包的&#xff0c;我想表情包大家都有吧。 没有怎么办呢&#xff1f;那就动手制作呗&#xff01; 如果你是个设计高手完全就不在话下&#xff0c;完全可以设计出自己…

如何用python绘制一系列三维的逗比风格表情包

如果你也想赚钱&#xff0c;实现财务自由&#xff0c;但接触不到优质的人脉和资源&#xff0c;可以到公June浩&#xff1a;成长home&#xff0c;发"资源" &#xff0c;就会看到我吐血整理的168条保姆级零基础吸金秘籍&#xff0c;跟着我一起亲历毕业5年、创业3年、从…

My Note of Diffusion Models

Diffusion Models Links: https://theaisummer.com/diffusion-models/ Markovian Hierachical VAE rvs: data: x 0 x_{0} x0​,representation: x T x_{T} xT​ ( p ( x 0 , x 1 , ⋯ , x T ) , q ( x 1 , ⋯ , x T ∣ x 0 ) ) (p(x_0,x_1,\cdots,x_T),q(x_1,\cdots,x_{T…

如何在html中插入表情包,怎么把表情包插入word

是下表情包已经成为一种流行&#xff0c;在word文档中&#xff0c;添加表情包&#xff0c;会给人一种生动亲切的感觉。那么如何在word中添加表情包呢&#xff1f;下面就来看看小编的方法吧。 表情包有很多种形式&#xff0c;例如动态表情&#xff0c;表情符号&#xff0c;静态图…