是否可以使此代码更快?
for i in range (len (data)):
column_name = data['Name'].values[i]
if data['Market'].values[i] == 'P':
market = 'Local'
else:
market = 'Oversea'
data['Momentum'].values[i] = self.Factor_Model (column_name, market)
我不习惯.apply()
和lambda函数。您能指导我如何将上面的代码更改为下面的代码吗?
data['Momentum'] = data.apply(lambda row: self.Factor_Model(row['Name'],lambda row: if row['Market'].values == 'P' ))
谢谢您的指导。
答案 0 :(得分:1)
我会用.apply()
调用axis=1
来对行进行操作。然后将Series中的每个项目直接传递给函数。
data['Location'] = np.where(data['Market'] == 'P', 'Local', 'Oversea')
data['Momentum'] = data.apply(lambda x: Factor_Model(x['Name'], x['Location']), axis=1)