Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将信息从CSV保存到文本_Python_Pandas - Fatal编程技术网

Python 将信息从CSV保存到文本

Python 将信息从CSV保存到文本,python,pandas,Python,Pandas,我有一个数据帧,如下所示: image_id x y w h x_center y_center img_height img_width lable 01 500 400 250 500 309.4 543.5 2500 4000 0 01 560 430 260 570 306.7 553.4 2200 3000 0 01 540 440

我有一个数据帧,如下所示:

image_id  x   y    w   h   x_center  y_center img_height img_width  lable
01       500 400  250 500    309.4     543.5    2500       4000       0
01       560 430  260 570    306.7     553.4    2200       3000       0
01       540 440  270 580    387.8     563.5    2700       2000       0
02       545 340  250 590    377.8     543.5    2100       2030       1
04       546 240  240 500    367.8     553.5    2300       2000       2
04       586 270  640 400    467.8     556.5    2400       1000       2
我需要为每个
图像\u id
保存YOLO模型类型文本文件的这些信息。为此,我需要将信息另存为

labels x_center y_center w h 
另外,在将信息保存到文本文件中时,我需要通过图像宽度(
img\u width
)和图像高度(
img\u height
)对
x\u中心和
高度进行规范化

我的审判

df=pd.read\u csv('data.csv'))
df_img_id=df.groupby('image_id'))
对于索引,df_img_id中的行:
img_w=行['img_宽度']
img_h=行['img_高度']
打开(f'{row['imgage_id']}.txt],'w+')作为f1:
ft.write()
f1.关闭()

在这一点上卡住了(

我们可以如下实现。让我们先创建一个虚拟数据帧

将熊猫作为pd导入
随机输入
信息={
“图像id:['01','01','01','02','04','04'],
“x”:随机抽样(范围(500600),6),
“y”:随机样本(范围(200500),6),
“w”:随机样本(范围(200300),6),
“h”:随机样本(范围(400600),6),
“x_中心”:随机样本(范围(250460),6),
“y_中心”:随机样本(范围(250460),6),
“img_高度”:随机样本(范围(2100,3000),6),
“img_宽度”:随机样本(范围(11004000),6),
“标签”:[0,0,0,1,2,2]
}
df=pd.DataFrame(data=info)
df.head()
--------------------------
图像id x y w h x_中心y_中心img_高度img_宽度标签
0     01       561  435 290 449 303        318      2105        2806         0
1     01       583  447 265 427 394        421      2338        2047         0
2     01       520  417 262 592 429        395      2947        3388         0
3     02       516  415 214 470 455        319      2649        1594         1
4     04       522  386 204 514 343        394      2847        1770         2
接下来,我们将使用
groupby
图像id对每一行进行迭代

df_image_id=df.groupby('image_id')#按id分组
对于_,df_图像_id中的行:
对于3;,行中的每一个。iterrows():#迭代相同id内的每个样本
img_w=每个['img_宽度']
img_h=每个['img_高度']
内容=[
每个[“标签”],
每个['x_中心']/每个['img_宽度'],
每个['y_中心']/每个['img_高度'],
每个['w']/每个['img_width'],
每个['h']/每个['img_高度']
]
id=每个['image\u id']
打开(f'{id}.txt',a')作为f1:
f1.写入(“.join(str(x)表示内容中的x)+'\n')

看起来“ft”是一个输入错误,应该是“f1”?在任何情况下,write方法都不会执行任何操作,除非您将要写入的内容传递给它。此外,使用“with”时不需要关闭文件,它会为您执行操作。是的,您是对的