【发布时间】:2017-10-03 17:54:45
【问题描述】:
我有一个由df 的随机标题名称填充的列表。
listado=['A','J']
listado 只能有 1 个值。
如果 listado 有值,那么我希望它将 df 中的这些列乘以另一个数据帧,该数据帧由名为 valores 的 1 列组成。
valores=df2.values
df2=
value
0 2
1 4
2 3
df如下:
df=
A B C J K
0 3 2 5 4 7
1 5 5 5 5 5
2 9 8 5 1 7
然后所需的输出是将列A 和J 乘以values 的df2:
A B C J K
0 6 2 5 8 7
1 20 5 5 20 5
2 27 8 5 3 7
我正在尝试这样的事情,以便将列表中获得的特定列相乘:
if listado:
valores=df2.values
for units in listado:
df1[units]=df1[units]*valores
return df1
但它
raise Exception('Data must be 1-dimensional')
和我尝试的时候一样:
if listado:
valores=df2.values
for i in range(len(listado)):
df1[listado[i]]=df1[listado[i]]*valores
return df1
我怎样才能得到想要的输出?
【问题讨论】:
标签: python pandas dataframe multiplication