Python 如果文件名相同,则创建csv文件并将数据追加到列中
我的数据使用分隔符“”按行生成,并创建和附加csv文件。我的数据有四列:Python 如果文件名相同,则创建csv文件并将数据追加到列中,python,python-3.x,pandas,dataframe,export-to-csv,Python,Python 3.x,Pandas,Dataframe,Export To Csv,我的数据使用分隔符“”按行生成,并创建和附加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
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函数
照片显示列Maxval_1已排序,但其他列Maxval_2、Maxval_3和Maxval_4未排序。如果您有选项,请将它们存储为值列表,始终将它们附加到列表中,因为在存储为
CSV
文件时不建议使用相同的列名。请使用指定键k
,并且:
我想把它们存储回csv文件,怎么做它工作了,但我的数据现在被分类了,怎么做?@krupalimitry只需添加
。reindex(df.Image.unique())
,更新了我的code@anky_91在代码的第一行中,Maxval
不是必需的,对吗?我们可以直接在Image
列上cumcount
。只是想了解解决方案是如何工作的。@Ansys,没错。我在测试后忘记了编辑。有时我会使用@anky_91,它工作了,但在数据排序之前,现在它的notaded.reindex(df.Image.unique()
添加到相同的代码中,它现在满足了预期的性能output@anky_91它只对第一部分进行排序,只对Maxval_1而不是Maxval_2、Maxval_3和Maxval进行排序_4@anky_91我尝试了m.columns.sort_值('Maxval',升序=False)但是它不起作用。我没有跟踪,预期的输出和我的代码生成的输出是一样的。当你说没有排序时,你能解释一下吗。谢谢
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