首页 > 解决方案 > 在 pandas 中附加一个带有列表的数据框作为行

问题描述

我正在计算输入文本和列表之间的 Levenshtein 距离。我想将此信息存储在数据框中以供以后进一步分析。

我在将我的函数生成的这个列表分配给创建的数据框时遇到问题。

col_list = data_df.clean_text_items.unique()
levenshtein_ratio_matrix_df = pd.DataFrame(columns= col_list)

def levenshtein_compare_to_list(row):
    row_levenshtein_ratio = []

    for i in collist:
        row_levenshtein_ratio.append(levenshtein (row['clean_text_source_item'], i))

    levenshtein_ratio_matrix_df.append(row_levenshtein_ratio)

for index, row in data_df.iterrows():
    levenshtein_compare_to_list(row) 

以下运行,如果我在每个循环中打印出 row_levensthein_ratio 它会显示正确的值,但它实际上并没有附加数据框。(levenshtein_ratio_matrix_df 留空)

标签: pythonpandas

解决方案


找到了答案

  df_length = len(levenshtein_ratio_matrix_df)
  levenshtein_ratio_matrix_df.loc[df_length] = row_levenshtein_ratio

代替

 levenshtein_ratio_matrix_df.append(row_levenshtein_ratio)

推荐阅读