假如现在有个 图书.csv 文件 怎么编写一个 .py文件提示输入特定值 然后会删除该特定值所在行 这种应该怎么实现? 要写好的代码,不是参考 谢谢
import pandas as pd
df = pd.read_csv('图书馆.csv')
key = input("请输入要删除行所包含的特定值:")
deleteRows = []
for index, row in df.iterrows():
for v in row:
if key in str(v):
deleteRows.append(index)
break
df = df.drop(index = deleteRows)
df.to_csv('图书馆_修改后.csv')
可以用pandas库读取csv,然后直接
data.drop(index = [0,1])就可以删除第一行和第二行
当然也可以输入某个值,删除那个值所在的行
import csv
import os
root = './csv_files'
path = './main'
file_old = 'file_names_ugc.csv'
file_old = os.path.join(root, file_old)
file_temp = 'file_names_ugc_temp.csv'
file_temp = os.path.join(root, file_temp)
fieldnames = ["","Unnamed: 0", "File_names", "labels"]
with open(file_old, 'r', newline='', encoding='gbk') as f_old, \
open(file_temp, 'w', newline='', encoding='gbk') as f_temp:
f_csv_old = csv.DictReader(f_old,fieldnames=fieldnames)
f_csv_temp = csv.DictWriter(f_temp,fieldnames=fieldnames)
for row in f_csv_old:
# print(row['File_names'])
imgname = row['File_names']
imgpath = os.path.join(path, imgname)
# f_csv_temp.writerow(rows)
try:
img1 = Image.open(imgpath)
f_csv_temp.writerow({'': row[''],
'Unnamed: 0': row['Unnamed: 0'],
'File_names': row['File_names'],
'labels': row['labels']})
# plt.imshow(img1)
# plt.show()
except:
pass
# os.remove(file_old)
# os.rename(file_temp, file_old)
代码参考自链接:https://blog.csdn.net/weixin_38800498/article/details/124041667
import csv
import os
first_csv = 'first.csv'
edit_csv = 'first_edit.csv'
with open(first_csv, 'r') as inp, open(edit_csv, 'w') as out:
writer = csv.writer(out)
for row in csv.reader(inp):
if '大雨' not in row[2]: # 写入不需要删除的文件
writer.writerow(row)
os.remove(first_csv) # 移除原始文件
os.rename(edit_csv, first_csv) # 将过滤后的文件还原成原文件
test,haha,大雨
test,haha,中雨
test,haha,小雨
test,haha,无雨