Я не уверен, что это полезно для вас, так как вы, кажется, хотите сделать это на основе того, что вы изучили в курсе, к чему у нас нет доступа. Но вы можете сравнить ряд и фрейм данных с reindex
, указав соответствующий столбец в качестве индекса.
Вот воспроизводимый пример:
Ваши данные:
traffic_id_1 GEO03_D4T-RWS_I_6590A_V_0460A_ID_8481
traffic_id_2 GEO03_D4T-RWS_I_6590_V_0460_ID_1149
traffic_id_3 RWS01_MONIBAS_0351hrl0325ra
traffic_id_4 RWS01_MONIBAS_0351hrr0325ra
traffic_id_5 RWS01_MONIBAS_0351hrr0328ra
(Скопировано в буфер обмена, затем:)
# make series into df
df = pd.read_clipboard(header=None)
df.columns = ['a', 'b']
# pull out original series from df column
ser = pd.Series(df['b'].values, df['a'].values).copy()
# change some values in the original
df.loc[1, 'b'] = 'foo'
df.loc[3, 'b'] = 'bar'
Итак, фрейм данных:
a b
0 traffic_id_1 GEO03_D4T-RWS_I_6590A_V_0460A_ID_8481
1 traffic_id_2 foo
2 traffic_id_3 RWS01_MONIBAS_0351hrl0325ra
3 traffic_id_4 bar
4 traffic_id_5 RWS01_MONIBAS_0351hrr0328ra
И серия:
traffic_id_1 GEO03_D4T-RWS_I_6590A_V_0460A_ID_8481
traffic_id_2 GEO03_D4T-RWS_I_6590_V_0460_ID_1149
traffic_id_3 RWS01_MONIBAS_0351hrl0325ra
traffic_id_4 RWS01_MONIBAS_0351hrr0325ra
traffic_id_5 RWS01_MONIBAS_0351hrr0328ra
dtype: object
# set index as relevant col
df = df.set_index('b')
df.reindex(ser).dropna()
Вывод:
a
GEO03_D4T-RWS_I_6590A_V_0460A_ID_8481 traffic_id_1
RWS01_MONIBAS_0351hrl0325ra traffic_id_3
RWS01_MONIBAS_0351hrr0328ra traffic_id_5
Редактировать: вы также можете добиться этого с помощью логического фильтра. Пропуск шага установки индекса в кадре данных:
mask = df.b == ser.reset_index(drop=True)
df[mask]
приводит к тому же самому. (Или в одну строку: df[df.b == ser.reset_index(drop=True)]
). Обратите внимание, что необходимо избавиться от уникального индекса серии, чтобы он соответствовал индексу фрейма данных.