如何将一串数字拆分为Pandas数据框中的编号列?
我有一个看起来像这样的熊猫数据框:
| 图像ID | 标签 | 标题文字 |
|---|---|---|
| 0.JPG | 1 | 拿着遮阳伞的泳装的妇女 |
| 1.JPEG | 1 19 | 黑色和银色的钟楼 |
| 2.JPEG | 8 3 13 | 这张照片显示了人们在山上滑雪。 |
回答
由于您已经知道范围是 1-19,您可以执行 get_dummies 并重新索引:
n=19
arr = df['labels'].str.get_dummies(' ').reindex(map(str,range(1,n+1)),axis=1,fill_value=0)
print(arr)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
2 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0
最后,您可以将其与原始数据帧连接起来:
out = pd.concat((df,arr),axis=1)