import pandas as pd
write_csv = "train.csv"
"""处理待存数据frame, xmin, xmax, ymin, ymax为list格式"""
column_frame = pd.Series(frame, name='frame')
column_xmin = pd.Series(xmin, name='xmin')
column_xmax = pd.Series(xmax, name='xmax')
column_ymin = pd.Series(ymin, name='ymin')
column_ymax = pd.Series(ymax, name='ymax')
column_classid = pd.Series(class_id, name='class_id')
save = pd.DataFrame({'frame':frame, 'xmin':xmin, 'xmax':xmax, 'ymin':ymin, 'ymax':ymax, 'class_id':class_id})
save.to_csv(write_csv, index=False, sep=' ')
"""上面这种方法,列的顺序和设定的不同"""
con = pd.concat([column_frame, column_xmin, column_xmax, column_ymin, column_ymax, column_classid], axis=1)
con.to_csv("train2.csv", index=False, sep=' ')
"""上面这种方法,列的顺序是固定的"""
删除指定包含指定行,参考1,参考2
import pandas as pd
csv_name = 'all.csv'
new_name = 'deleted_all.csv'
data = pd.read_csv(csv_name)
delete_img = ['F000_00027.jpg', 'F000_00069.jpg', 'F001_00048.jpg', 'F003_00050.jpg',
'F005_00050.jpg', 'F007_00050.jpg', 'F011_00050.jpg', 'F013_00050.jpg',
'F015_00050.jpg', 'F017_00050.jpg', 'F019_00050.jpg', 'F027_00050.jpg',
'F034_00060.jpg', 'F036_00060.jpg', 'F040_00060.jpg', 'F042_00037.jpg',
'F044_00060.jpg', 'F048_00060.jpg', 'F050_00037.jpg', 'F054_00060.jpg']
index = data[data['frame'].isin(delete_img)].index #返回有要删除图像的行号
deleted_data = data.drop(index)
deleted_data.to_csv(new_name, index=False, sep=',')
分别存为train和val,即保留指定行,删除指定行。
new_name = 'deleted_all.csv'
deleted_data = pd.read_csv(new_name)
train_name = 'train.csv'
val_name = 'val.csv'
val_video = ['F055', 'F052', 'F050', 'F040', 'F032']
val_index = deleted_data[deleted_data['frame'].str[:4].isin(val_video)].index
val_data = deleted_data.loc[val_index, :]
train_data = deleted_data.drop(val_index)
train_data.to_csv(train_name, index=False, sep=',')
val_data.to_csv(val_name, index=False, sep=',')