我有以下格式的数据框
name v1 v2 v3
x 1 4 7
y 2 5 8
z 3 6 9
我想将中间两列中的每个值乘以最后一列中的值,输出为:
name v1 v2 v3
x 7 28 7
y 16 40 8
z 27 54 9
我当前的尝试是给出错误,索引对象没有属性应用
df[df.columns[1:-2]] = df.columns[1:-2].apply(lambda x : (x*df.columns[-1])
答案 0 :(得分:3)
print (df.iloc[:, 1:-1])
v1 v2
0 1 4
1 2 5
2 3 6
df.iloc[:, 1:-1] = df.iloc[:, 1:-1].mul(df.iloc[:, -1], axis=0)
print (df)
name v1 v2 v3
0 x 7 28 7
1 y 16 40 8
2 z 27 54 9
按名称选择列的解决方案:
df[['v1','v2']] = df[['v1','v2']].mul(df['v3'], axis=0)
print (df)
name v1 v2 v3
0 x 7 28 7
1 y 16 40 8
2 z 27 54 9