Сравните столбцы двух фреймов данных и отфильтруйте фрейм данных на основе условия - PullRequest
0 голосов
/ 19 ноября 2018

Представлены два кадра данных

Name Score John 0.27 Peter 0.34 David 0.89 Sarah 0.67 Tom 0.93

Name minScore John 0.50 Peter 0.20 David 0.90 Sarah 0.50 Tom 0.90

Я хочу сравнить столбец (Score) первого кадра данных со столбцом (minScore)второго фрейма данных и получить отфильтрованный первый фрейм данных df = dataframe1['score']>dataframe2['minscore']

конечный выходной результат, как показано

Name Score Peter 0.34 Sarah 0.67 Tom 0.93

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 19 ноября 2018

Вы можете создать серию с индексом Name и использовать map при построении логического условия.Я также настоятельно рекомендую вам copy, если вы хотите гарантировать, что у вас не осталось вида.

min_map = df2.set_index('Name')['minScore']
df = df1.loc[df1['Score'] > df1['Name'].map(min_map)].copy()
0 голосов
/ 19 ноября 2018

Вам необходимо объединить кадры данных в поле Имя

df = dataframe1.merge(dataframe2, on='Name')

и результат фильтрации:

df[df.Score > df.minScore]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...