Вычисление столбца для всех строк в одном фрейме данных из информации в двух фреймах данных - PullRequest
0 голосов
/ 18 октября 2018

Я работаю, но я представляю неэффективный или неправильно написанный код 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...