我想用不同的数字乘以每列并更新此数据框的值。
我写的代码是:
for j in test.columns:
for i in r:
for k in range(len(p)):
test[i] = test[j].apply(lambda x:x*p[k])
p.remove(p[k])
break
r.remove(i)
break
p 是我想乘以的数字列表。
p = [74, 46, 97, 2023, 364, 1012, 8, 242, 422, 78, 55, 90, 10, 44, 1, 3, 105, 354, 4, 26, 87, 18, 889, 9, 557, 630, 214, 1765, 760, 3344, 136, 26, 56, 10, 2, 2171, 125, 446, 174, 4, 174, 2, 80, 11, 160, 17, 72]
r
是列名列表。
如何摆脱这个错误?
根据您最初的陈述“我想用不同的数字乘以每一列”,我写了这个答案。目前还不清楚为什么在您的代码中,您必须多次使用 remove 以及为什么使用如此多的 for 循环。就我而言,我生成了一个 100 行和 5 列的随机数据框,以及一个包含 5 个值的数组用于乘法。
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randint(0,100,size=(100, 5)), columns=list('12345'))
p=np.random.randint(0,100,5)
for i in range(5):
df.iloc[:,i]=df.iloc[:,i]*p[i]
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句