根据两个数据帧中的信息为一个数据帧中的所有行计算一列

时间:2018-10-18 20:40:59

标签: python pandas

我已经在工作,但是我想象下面的效率不高或编写不正确的pandas / python代码试图使用该数据帧以及我正在执行联接的另一个数据帧中的信息来计算该数据帧中所有行的列值每个数据帧中相似列上的类似操作。在下面的df1中,common_key_1是一个字符串,而在下面的df2中,common_key_2是我要与之匹配的一系列字符串(任意条件)。

所以我想做的是对系列中的每个字符串执行find操作,而不是像下面的单个字符串。有什么更合适的方法可以避免for循环?

for i in range(0, len(df1)):
    key_in_df1 = predictions_df[common_key_1][i]
    matching_df = df2.loc[df2[common_key_2].apply(lambda x: any((i for i in x if i.find(key_in_df1) >= 0)))]
    val = matching_df[value_column].sum()
    number_rows = len(matching_df)
    overall_value = 0 if number_rows == 0 else val * (2.0 / 3.0) / number_rows
    df1.loc[i,(column_to_set)] = overall_value

0 个答案:

没有答案