【发布时间】:2018-12-19 16:46:52
【问题描述】:
我的数据框如下所示:
+-------+-----------------------------------------+
| Image | Bounding Boxes |
+-------+-----------------------------------------+
| a.jpg | xyz 0.1 0.2 0.3 0.4 |
| b.jpg | xyz 0.1 0.2 0.3 0.4 ijk 0.4 0.3 0.2 0.1 |
+-------+-----------------------------------------+
这些边界框的值总是以五个一组的形式出现,其中值的意思是(按顺序)
- 边界框表示的标签的ID
- 边界框的 X 坐标(以图像宽度的百分比表示)
- 边界框的 Y 坐标(以图像高度的百分比表示)
- 图片的宽度(占整个图片的百分比)
- 图片高度(占整个图片的百分比)
由于每行最多只有 5 个这样的对(并且至少为零),我想将数据框转换为如下所示:
+-------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+
| Image | L1 | x1 | y1 | w1 | h1 | L2 | x2 | y2 | w2 | h2 | ... | h5 |
+-------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+
| a.jpg | xyz | 0.1 | 0.2 | 0.3 | 0.4 | | | | | | | |
| b.jpg | xyz | 0.1 | 0.2 | 0.3 | 0.4 | ijk | 0.4 | 0.3 | 0.2 | 0.1 | ... | |
+-------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+
换句话说,以前在一列中的每个以空格分隔的值,我希望它们分成一个新列。
问题
如何在 Pandas 中做到这一点?
【问题讨论】:
标签: python pandas dataframe data-science