我当前的数据集采用以下格式。
df = pd.DataFrame({
'a' = np.random.randn(6),
'b' = np.random.randn(6),
'c' = np.random.randn(6),
'd' = np.random.randn(6),
'e' = np.random.randn(6),
'f' = np.random.randn(6)
})
我更新的数据集如下所示:
df = pd.DataFrame({
'a' = np.random.randn(6),
'b' = np.random.randn(6),
'c' = np.random.randn(6),
'd' = np.random.randn(6),
'e' = np.random.randn(6),
'f' = np.random.randn(6),
'alpha' = np.random.randn(6),
'beta' = np.random.randn(6),
'gamma' = np.random.randn(6)
})
where alpha = df['a']*2
beta = df['b']*5
gamma = df['c']*6
最后 3 列 ( alpha, beta & gamma) 和输入列 ( a,b,c) 以及数值 ( 2,5,6) 都是变量,因此从外部作为列表传递。
所以,我尝试了以下代码:
newCol = ['alpha', 'beta', 'gamma']
oldCol = ['a', 'b', 'c']
numVal = [2, 5, 6]
for i in range(len(newCol)):
df[newCol[i]] = df[oldCol[i]]*numVal[i]
但我收到以下错误:
TypeError: unsupported operand type(s) for /: 'str' and 'float'
有人可以告诉我如何解决这个问题吗?
守着星空守着你
红颜莎娜
相关分类