python - 创建 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   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 函数。

enter image description here 该照片显示列 Maxval_1 已排序,但其他列 Maxval_2、maxval_3 和 Maxval_4 未排序

最佳答案

使用groupby.cumcount分配键 kunstack :

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/

相关文章:

python - 计算 Pandas 数据框中两行 LDA 分布之间的距离

python - 需要等效的函数来获取 Exchangelib Python 中的 Alias,就像 win32com 中的这个函数 (item.sender.getexchange().Alias)

Python:如何读取目录中的所有文件?

python - 在 Pandas 中查询 HDF5

python-3.x - Python3 Beautifulsoup4 从多个容器兄弟中提取文本

linux - python 将 os.environ 传递给子 gnome 终端

Python Airflow 自定义传感器 - 实现哪些方法

python - 没有名为 'socks' 的模块

python-3.x - Pandas:在进行规范化时忽略字符串列

pandas - 如何使用 pandas 根据列 ID 将多个 csv 文件合并为 1 个文件