我有一个多变量函数:
def particle_range(row, energy=eng_list):
r = 0.01* (((row['mass'] * energy)/(144 * row['projectile'] ** 2 * row['element'] * math.log((2195 * energy)/row['ionisation']))))
return r
每次函数运行时,都会输入相同的能量变量。这是一个能量列表:
eng_list = [0.01,0.02,0.03, 0.04, 0.05]
每次函数运行时,都会传递一个差异数据帧。每个数据帧包含一行数据。此行中的每列都是particle\ u range()的输入。你知道吗
我希望输出是一个列表,它是应用于列表中每个元素的函数,eng_list
我将数据帧应用于此。其中df如下:
data = [['natMo-a', 98, 43, 2, 9.2, 42]]
df = pd.DataFrame(data, columns=['reaction', 'mass', 'element', 'projectile', 'density', 'ionisation'])
然后我运行df.apply(particle_range)
当我运行这个时,我得到一个错误:
TypeError: ("can't multiply sequence by non-int of type 'float'", 'occurred at index 0')
我试过跑步
df.apply(particle_range, axis=1, energy=np.array(energy=eng_list)))
返回错误:
TypeError: Required argument 'object' (pos 1) not found
目前没有回答
相关问题 更多 >
编程相关推荐