将函数应用于列表对象

2024-06-16 11:26:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个多变量函数:

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

Tags: 数据函数df列表rangeelementengmass