Python - 将列的范围乘以最后一列

时间:2017-03-21 18:24:50

标签: python-2.7 pandas

我有以下格式的数据框

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])

1 个答案:

答案 0 :(得分:3)

您可以使用iloc按位置选择mul

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