数据框应用自定义函数

时间:2017-10-04 07:12:35

标签: python pandas

我有一个庞大的数据框,我想使用几个列来应用自定义函数,并将结果放在一个新列中。但我遇到了一个问题。 以下是我计算两行之间距离的函数。

def calcDist(p, q):
    diff = p - q
    square_diff = diff ** 2
    sum_square_diff = square_diff.sum()
    return sum_square_diff ** 0.5

函数中的一个参数是常量(0和1的系列),函数的第二个参数是数据框中所选列中的数据(类似于0和1的系列)。 我试过以下代码。

cols = ['a','b','c']
new = [0,1,1]
df.columns = ['aa','a','b','c','dd','ee']
df['dist'] = df.loc[:,cols].apply(lamda x: calcdist(x, new)) 

但是我在“#dist;'柱。 我已经尝试过循环来解决这个问题。但它很慢。

house_chosen['dist'] = 0
for i in range(len(house_chosen)):
    cols_chosen = house_chosen.loc[:, addition_list]
    series_chosen = cols_chosen.iloc[i, :]
    house_chosen.iloc[i, 42] = calcDist(new_house_addition, series_chosen)

有没有办法用apply函数解决问题? THX

0 个答案:

没有答案