将lambda函数应用于pandas datafram时发生Keyerror

2024-04-26 17:27:51 发布

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

我在pandas数据帧上应用K-means聚类。集群分配功能如下:

def assign_to_cluster(row):
    lowest_distance = -1
    closest_cluster = -1

    for cluster_id, centroid in centroids_dict.items():
        df_row = [row['PPG'],row['ATR']]
        euclidean_distance = calculate_distance(centroids, df_row)

        if lowest_distance == -1:
            lowest_distance = euclidean_distance
            closest_cluster = cluster_id
        elif euclidean_distance < lowest_distance:
            lowest_distance = euclidean_distance
            closest_cluster = cluster_id
    return closest_cluster

point_guards['CLUSTER'] = point_guards.apply(lambda row: assign_to_cluster(row), axis=1)

但是我在使用lambda函数时得到以下错误:

^{pr2}$

有人能解释一下错误的原因和我如何解决它吗?如果您需要更多信息,请回复此帖子。 并为格式道歉。这是我第一次在StackOverflow上提问。在


Tags: tolambdaiddf错误rowdistancepoint
1条回答
网友
1楼 · 发布于 2024-04-26 17:27:51

原来我犯了一个简单的语法错误。而不是使用字典“形心”的“质心”部分_dict.项目()'调用函数“calculate_distance”时:

for cluster_id, centroid in centroids_dict.items():
    df_row = [row['PPG'],row['ATR']]
    euclidean_distance = calculate_distance(centroid, df_row)
....

我用了“质心”:

^{pr2}$

不过现在已经解决了。在

相关问题 更多 >