Python 如何复制行
我的数据如下所示:Python 如何复制行,python,pandas,Python,Pandas,我的数据如下所示: '#filename' file_size file_attributes region_count region_id region_shape_attributes region_attributes digits digit_length 0030004489.jpg 25188 {} 3 1 {"name":"rect","x":143,"y"
'#filename' file_size file_attributes region_count region_id region_shape_attributes region_attributes digits digit_length
0030004489.jpg 25188 {} 3 1 {"name":"rect","x":143,"y":86,"width":201,"height":38} {"class_type":"Medium Box"} 33328 6
0030004489.jpg 25188 {} 3 0 {"name":"rect","x":143,"y":75,"width":200,"height":68} {"class_type":"Big Box"} 33328 6
0030004745.jpg 23632 {} 3 2 {"name":"rect","x":140,"y":61,"width":174,"height":47} {"class_type":"Small Box"} 7631 8
0030004745.jpg 23632 {} 3 1 {"name":"rect","x":84,"y":62,"width":268,"height":45} {"class_type":"Medium Box"} 7631 8
0030004745.jpg 23632 {} 3 0 {"name":"rect","x":86,"y":37,"width":266,"height":91} {"class_type":"Big Box"} 7631 8
0030005942.jpg 24178 {} 3 2 {"name":"rect","x":268,"y":66,"width":84,"height":35} {"class_type":"Small Box"} 196 4
0030005942.jpg 24178 {} 3 1 {"name":"rect","x":189,"y":66,"width":176,"height":35} {"class_type":"Medium Box"} 196 4
0030005942.jpg 24178 {} 3 0 {"name":"rect","x":191,"y":48,"width":175,"height":64} {"class_type":"Big Box"} 196 4
0030012268.jpg 25450 {} 3 2 {"name":"rect","x":218,"y":46,"width":113,"height":35} {"class_type":"Small Box"} 369 6
0030012268.jpg 25450 {} 3 1 {"name":"rect","x":173,"y":46,"width":174,"height":35} {"class_type":"Medium Box"} 369 6
0030012268.jpg 25450 {} 3 0 {"name":"rect","x":174,"y":35,"width":173,"height":45} {"class_type":"Big Box"} 369 6
for f in file_name:
df=df.append((df.loc[(df['#filename']) == (str(f).replace("A_",""))].iloc[0]*100))
df.to_csv("test.csv")
break
如何复制类类型为small box的行,并将其更改为向复制行的文件名追加一个?我尝试复制如下行:
'#filename' file_size file_attributes region_count region_id region_shape_attributes region_attributes digits digit_length
0030004489.jpg 25188 {} 3 1 {"name":"rect","x":143,"y":86,"width":201,"height":38} {"class_type":"Medium Box"} 33328 6
0030004489.jpg 25188 {} 3 0 {"name":"rect","x":143,"y":75,"width":200,"height":68} {"class_type":"Big Box"} 33328 6
0030004745.jpg 23632 {} 3 2 {"name":"rect","x":140,"y":61,"width":174,"height":47} {"class_type":"Small Box"} 7631 8
0030004745.jpg 23632 {} 3 1 {"name":"rect","x":84,"y":62,"width":268,"height":45} {"class_type":"Medium Box"} 7631 8
0030004745.jpg 23632 {} 3 0 {"name":"rect","x":86,"y":37,"width":266,"height":91} {"class_type":"Big Box"} 7631 8
0030005942.jpg 24178 {} 3 2 {"name":"rect","x":268,"y":66,"width":84,"height":35} {"class_type":"Small Box"} 196 4
0030005942.jpg 24178 {} 3 1 {"name":"rect","x":189,"y":66,"width":176,"height":35} {"class_type":"Medium Box"} 196 4
0030005942.jpg 24178 {} 3 0 {"name":"rect","x":191,"y":48,"width":175,"height":64} {"class_type":"Big Box"} 196 4
0030012268.jpg 25450 {} 3 2 {"name":"rect","x":218,"y":46,"width":113,"height":35} {"class_type":"Small Box"} 369 6
0030012268.jpg 25450 {} 3 1 {"name":"rect","x":173,"y":46,"width":174,"height":35} {"class_type":"Medium Box"} 369 6
0030012268.jpg 25450 {} 3 0 {"name":"rect","x":174,"y":35,"width":173,"height":45} {"class_type":"Big Box"} 369 6
for f in file_name:
df=df.append((df.loc[(df['#filename']) == (str(f).replace("A_",""))].iloc[0]*100))
df.to_csv("test.csv")
break
但问题是它会将所有复制行追加到一个单元格中,如下所示:
试试这个
df = #your Dtaframe
df2 = df[(df['digit_length']) == '{"class_type":"Small Box"}']
df2['#filename'] = df2['#filename'].apply(lambda x:"A_"+x)
replicated_df = pd.concat([df,df2])
以下是您可以使用的方法:
您所说的“更改附加A”是什么意思?例如,如果文件名为0030012268.jpg,则复制的行将具有文件名A_0030012268.jpg当我将其保存到csv时,没有新生成/复制的行。此行工作正常。但问题是,对于文件,它复制的行可以是小的、大的、中的。另一方面,我希望它能为所有类复制行,但我认为这不应该发生,因为我们正在对整个数据帧执行
.sample
。你能指出几行发生这种情况的地方吗?可以在问题中加上它。