遍历熊猫数据框中列表的每一行和每个元素

问题描述 投票:0回答:1

我具有此功能(最后一个是我想要的功能:

def subtract_vectors(v, w):
    return [vi - wi for vi, wi in zip(v, w)]

def sum_of_squares(v):
    """ v1 * v1 + v2 * v2 ... + vn * vn"""
    # or return dot_product(v, v)
    return sum(vi ** 2 for vi in v)

def md(df, n, x, x_bar):
summ = 0
for j in range(len(full['ARIEL'])): #length of dataframe, so that it does every row
    for i in range(len(x)): #so that it iterates through all elements of the list
        step1 = subtract_vectors(x[i][j], x_bar[j])
        step2 = sum_of_squares(step1)
        summ += step2
    result = summ/n
return result

我对for循环感到困惑。我希望该函数遍历列表中的每个元素,而且遍历每行。

我上面的内容似乎使它崩溃,因为它从未得到结果,而是不断循环。

对此有任何帮助吗?预先感谢!

python pandas function apply
1个回答
0
投票

我想这会起作用。您要汇总数据帧的所有行还是逐行汇总?

def subtract_vectors(list_v, list_w):

    return [vi - wi for vi, wi in zip(v, w)]

def sum_of_squares(v):
    """ v1 * v1 + v2 * v2 ... + vn * vn"""
    # or return dot_product(v, v)
    return sum(vi ** 2 for vi in v)

summ = 0
def md(n,x,x_bar,data):
    for i in range(len(data))
        step1 = subtract_vectors(x[i][j], x_bar[j])
        step2 = sum_of_squares(step1)
        summ += step2
        result = summ/n
    return result

full['Result'] = full['ARIEL'].apply(lambda y: md(n,x,x_bar,y))
© www.soinside.com 2019 - 2024. All rights reserved.