Сравните каждое значение серии с любым другим значением из другой серии в пандах

-4

У меня есть два кадра данных панд

df = pd.DataFrame()
df['r_no'] = [1,1,1,2,3,1,1,1,2]
df['user'] = ['sam','sam','sam','sam','peter','jack','jack','Kris','peter']
df['value'] = [76,76,7,8,8,2,29,2,8]
df['cam_id'] = ['ab','abc','ab','ab','ab','abcd','abcd','abcd','ab']

df_2 = pd.DataFrame()
df_2['r_no'] = [1,3,2,2,4,1,1,3,2,5,7,2,8,9,3]

df
r_no user value cam_id
0 1 sam 76 ab
1 1 sam 76 abc
2 1 sam 7 ab
3 2 sam 8 ab
4 3 peter 8 ab
5 1 jack 2 abcd
6 1 jack 29 abcd
7 1 Kris 2 abcd
8 2 peter 8 ab

df_2
r_no
0 1
1 3
2 2
3 2
4 4
5 1
6 1
7 3
8 2
9 5
10 7
11 2
12 8
13 9
14 3

Ожидаемый результат Новый столбец в фрейме данных df

df['count_greaterandequal']
0 3
1 3
2 3
3 7
4 10
5 3
6 3
7 3
8 7

для вычисления числа для r_no в df --- dataframe было равно или больше, чем в df_2 --- dataframe

спросил(а) 2018-06-01T08:38:00+03:00 2 года, 4 месяца назад
0
71

Используйте широковещательное сравнение numpy для базовых массивов для производительности.

df['count_greaterandequal'] = (df.r_no.values >= df_2.r_no[:, None]).sum(0)

df
r_no user value cam_id count_greaterandequal
0 1 sam 76 ab 3
1 1 sam 76 abc 3
2 1 sam 7 ab 3
3 2 sam 8 ab 7
4 3 peter 8 ab 10
5 1 jack 2 abcd 3
6 1 jack 29 abcd 3
7 1 Kris 2 abcd 3
8 2 peter 8 ab 7

ответил(а) 2018-06-01T08:42:00+03:00 2 года, 4 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема