pandas 读写csv,删除添加行csv

pandas 读写csv

#读取csv
date=pd.read_csv("xx.csv")
#没有表头第一行也要读取加header=None
date=pd.read_csv("xx.csv",header=None)
#添加列标题
date.columns = ["img","w","h","x","y","name"]
#写入新的csv
date.to_csv("xx.csv")

读取行、列

import pandas as pd
#按index默认行号date.iloc(i:),或date.iloc([i]:)
#按行的标题date.loc("A")
#date.iloc([i]:)输出会保留格式,date.iloc(i:)输出的是具体的值和属性如下
print(date.iloc[0,:])
img     G:\Nigel\data\static\SKU\images/XYGOC202008031...
w                                                     551
h                                                     259
x                                                     672
y                                                     366
name                                              chapai2
Name: 0, dtype: object

print(date.iloc[[0],:])
img	w	h	x	y	name
0	G:\Nigel\data\static\SKU\images/XYGOC202008031...	551	259	672	366	chapai2
#一般在去谋行某列的值作条件,就是取值的时候用
date.iloc(i:)
#需要把某行按原格式写到其他csv中用
date.iloc([i]:)

print(date.iloc[0,1])
551

date.iloc[[0],1]
0    551
Name: w, dtype: int64

在新的csv中添加行

#把date的i行写入xxl.cvs
date.iloc[[i],:].to_csv('xxl.cvs', mode='a', header=False)
#mode='a',就可以一直往后添加

根据条件删除某行,写入新的csv

#如果用
date.drop([i])#他会不会对源文件进行修改
date.drop([i],inplace=True)#对源文件进行修改,
#但是在数据多,循环操作会报如下内存不足
IndexError: single positional indexer is out-of-bounds
#所以删除某行推荐用,把需要删除的行,根据自己需求获取行号,写入一个list,然后用skiprows条件读取,不读取这些行,把这个df写入新的csv即可
df = pd.read_csv("xx", skiprows=del_list)

#如下面列子判断每行第六列的数据是否在del_class中,是就记录行号在del_list中
data2=pd.read_csv("xx")
def del_list(data2,del_class):
    n=len(data2)
    del_list=[]
    for i in range (len(data2)) :
        temptname=data2.iloc[i,5]
        if temptname in del_class:
            del_list.append(i)
            print(i)
    print("ok")
    return del_list
del_list=del_list(data2,del_class)
df = pd.read_csv("xx.csv", skiprows=del_list)
df.to_csv('xx_afer.csv',index=0)#index=0不保留索引

关于列的操作,删除添加

#删除推荐就直接用
pd.read_csv()按照需求去读取,进行简单的数据清洗

#添加列
insert_data=[]
df.insert(1,"a",insert_data)




  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值