给出这样的数据框
ImageId | Width | Height | lb0 | x0 | y0 | lb1 | x1 | y1 | lb2 | x2 | y2
0 abc | 200 | 500 | ijk | 4 | 8 | zyx | 15 | 16 | www | 23 | 42
1 def | 300 | 800 | ijk | 42 | 23 | zyx | 16 | 15 | www | 8 | 4
2 ghi | 700 | 400 | ijk | 9 | 16 | zyx | 17 | 24 | www | 43 | 109
3 jkl | 500 | 100 | ijk | 42 | 23 | | | | | |
...
[x0, x1]
除以[Width]
和[y0, y1]
除以[Height]
?我可以通过以下方式为所有x*
列设置常量值
df.iloc[:, 4::3] = SOME_SCALAR_VALUE
但是我想做的是
df.iloc[:, 4::3] = df.iloc[:, 4::3] / df['Width']
返回
ValueError:操作数不能与形状(62936,)(8,)一起广播
答案 0 :(得分:2)
将div
与axis=0
参数一起使用:
df.iloc[:, 4::3].div(df['Width'], axis=0)
输出:
x0 x1 x2
0 0.020000 0.075000 0.115000
1 0.140000 0.053333 0.026667
2 0.012857 0.024286 0.061429
答案 1 :(得分:0)
这应该做
df.iloc[:,4:3] = df.iloc[:,4:3].apply(lambda x: x/df['Width'],axis=0)