- Отредактировано для уточнения
У меня большой фрейм данных.Два столбца имеют ['radius']
и ['angle']
.
У меня есть еще один кадр данных фильтра, который имеет только ['radius']
и ['angle']
.
Этот код предназначался для удаления строк, которые сделалине совпадают по углам и радиусам из фрейма данных фильтра.Он видит все радиусы и углы, поэтому ничего не пропускает:
df = df.drop(~df['angle'] == filter_df[angle] & ~df['radius'] == filter_df['radius'])
df = df.drop(~df['angle'].isin(filter_df[angle]) & ~df['radius'].isin(filter_df['radius']))
Как выглядят кадры данных:
# Filter dataframe: # Main dataframe
angle radius angle radius ...
0 0 500 0 0 500 ...
1 0 1000 1 0 1000 ...
2 0 1500 2 0 1500 ...
3 45 500 3 0 2000 ...
4 45 1000 4 0 2500 ...
5 45 1500 5 0 3000 ...
6 45 2000 6 0 3500 ...
7 45 2500 7 0 4000 ...
8 45 3000 8 0 4500 ...
9 90 500 9 0 5000 ...
10 90 1000 11 45 500 ...
11 135 2000 12 45 1000 ...
12 135 2500 13 45 1500 ...
... ...
45 315 2000 719 315 7000
Основной кадр данных имеет 10 радиусов на угол и 8 углов.Кроме того, есть несколько повторов, так что вы получите много углов и радиусов.
Мне нужно иметь возможность фильтровать (сохранять) только пары радиусов и углов из базы данных фильтров.т.е. если строка (пара углов и радиусов) из информационного кадра совпадает со строкой (пара углов и радиусов) из информационного кадра фильтра, сохраните эту строку.
У информационного кадра фильтра никогда не будет повторений, основной кадр данных будетэто нормально.Позже другие столбцы, которые не упомянуты, будут усреднены для сопоставления строк (пары углов и радиусов).