python 数据分析基础一:csv文件处理(3.0)(丢弃行列,与添加标题,基础python与pandas分别实现)

前文中说到利用pandas模块去处理一些csv文件列及行的问题
那么本篇讲解,丢弃行列,与添加标题。

那么我们还是利用之前的csv模板,如图:
在这里插入图片描述
赠上下载地址

丢弃csv文件的行和列

利用基础python处理

在这之前,我们需要打开我们的supplier_data.csv做一些便于测试代码的修改。
如图:
在这里插入图片描述
alright
代码:

#选取连续的行   利用基础python来丢弃行和列
import csv
input_file="supplier_data.csv"
out_file="the_first_csv.csv"
row_count=0
with open(input_file,"r",newline="") as fileread:
    with open(out_file,"w",newline="") as filewrite:
        read_object=csv.reader(fileread)
        write_object=csv.writer(filewrite)
        for row in read_object:
            row_count+=1
            if 4<=row_count<=16 :
                write_object.writerow([value.strip() for value in row])
#这里其实就是一个类似索引的判断,我们用row_count这个数字变量来承接这个任务

代码很并没有很难,也很容易理解,这里的索引的方式可以按照自己的方式规划,当然也可以按照作者这种方法,我这样写是因为它的索引符合了我们认为的行,我在后面的for循环中,每读取一行都会,递增1,那么这种索引的设置,第一行便是1,第二行便是2,第n行便是n,很难出错。
最后我们使用一个简写:
write_object.writerow([value.strip() for value in row]) 这其实就是
**write_object.writerow(row)**只是我换了一种打法
这段代码已经讲完了,尾随其后的 列表生成器 只是拓展内容,了解的跳过即可。

拓展:上面这种打法呢,是一种列表生成器,这里可以给讲解一下,因为比较基础,而且进阶用法也比较多
列表生成器是一种生成列表的简写法,
在这里插入图片描述
可以看到,常规写法三行,而简短写法在本质上是与常规写法一样的,却只使用一行,这对于简短代码很有帮助。

利用pandas处理

每种处理方式,我一般都会以基础python和pandas两种方式写出来
代码:

#利用pandas来丢弃行和列
import pandas as pd
input_file="supplier_data.csv"
out_file="the_first_csv.csv"
read_object=pd.read_csv(input_file,header=None)#指定原始文件没有列索引
data_frame=read_object.drop([0,1,2,18,16,17])#丢弃符合行索引的内容
print(data_frame.columns)
data_frame.columns=data_frame.iloc[0]#以第一行作为属性分类?这一行的作用是更改表头,将已经修改的数据框的第一行作为表头
#print(data_frame.columns)
#print(data_frame)
data_frame=data_frame.reindex(data_frame.index.drop([3]))
data_frame.to_csv(out_file,index=False)
#比较陌生的函数以及用法有很多

那么对pandas还了解尚浅的小伙伴可能看到一些新的用法就直接蒙了。没关系,慢慢来,人总是在发现问题中进步的。
1.drop函数:
在这里插入图片描述
至于其他内容在代码已经注释,没看明白的小伙伴仔细想想便可。

添加标题

利用基础python添加标题+

首先我们删除掉,模板文件的标题
在这里插入图片描述
代码:

#利用基础python添加标题行
import csv
input_file="supplier_data.csv"
out_file="teh_first_csv.csv"
with open(input_file,"r",newline="") as fileread:
    with open(out_file,"w",newline="") as filewrite:
        read_object=csv.reader(fileread)
        write_object=csv.writer(filewrite)
        supplier_list=["Supplier Name","Invoice Number","Part Number","Cost  Purchase Date"]
        write_object.writerow(supplier_list)
        for row in read_object:
            write_object.writerow(row)
#还是要进行一个类似于文件复制的操作,代码的意思其实很简洁,创建一个新的写入对象,先把标题行写入,在把剩下的内容迁移过去
#这一点我在看到标题的时候已经想到了,所以这段代码其实只是无聊打出来的,对我本人并没有什么学习意义,但是写出来总归是好的,肯定有人不清楚的

代码并不复杂,我想大概不需要讲解,我在代码中已经讲的比较详细
下一个:

利用pandas添加标题

基础python本身并不难,所以pandas本身也不是特别难

#利用pandas添加标题行
import pandas as pd
input_file="supplier_data.csv"
out_file="the_first_csv.csv"
name_list=["Supplier Name","Invoice Number","Part Number","Cost","Purchase Data"]
read_object=pd.read_csv(input_file,names=name_list)
read_object.to_csv(out_file,index=False)
#利用pandas添加标题行,这里不使用header=None 是因为完全没有必要去去除掉列索引,read_csv函数的内容还不少,应该在博客里再做详解

注意read_csv的参量这里有一个**read_object=pd.read_csv(input_file,names=name_list)**其实本身read_csv的参量形式就很多,这些后面都会慢慢说道,我们只需要慢慢的记忆就可以了,The more you remember, the faster you remember

好的那么今天就到这里了,如果需要学习数据分析可以关注博主哦

武汉加油

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值