我的数据是使用分隔符“,”按行生成的,并且创建并附加了 csv 文件。我的数据看起来有四列:
Image Maxval locx locy
123.jpg 0.99 56 78
223.jpg 0.95 54 71
221.jpg 0.93 54 77
123.jpg 0.92 66 77
223.jpg 0.94 56 79
221.jpg 0.97 57 72
现在,如果图像名称相同,那么我想将数据附加到列中,使其看起来像这样
Image Maxval locx locy Maxval locx locy
123.jpg 0.99 56 78 0.92 66 77
223.jpg 0.95 54 71 0.94 56 79
221.jpg 0.93 54 77 0.97 57 72
在这里,我很困惑是否应该使用数据帧或某些 csv 函数。
最佳答案
使用groupby.cumcount
分配键 k
和 unstack
:
m=(df.assign(k=(df.groupby('Image').Maxval.cumcount()+1))
.set_index(['Image','k']).unstack().sort_values('k',axis=1).reindex(df.Image.unique())
m.columns=['_'.join(map(str,i)) for i in m.columns]
print(m)
Maxval_1 locx_1 locy_1 Maxval_2 locx_2 locy_2
Image
123.jpg 0.99 56 78 0.92 66 77
223.jpg 0.95 54 71 0.94 56 79
221.jpg 0.93 54 77 0.97 57 72
关于python - 创建 csv 文件并根据该列附加数据(如果文件名相同),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57406688/