У меня есть фрейм данных в python, например этот:
col1 col2 col3 col4
0 A C B D
1 C E E A
2 E A E A
3 A D D D
4 B B B B
5 D D D D
6 F F A F
7 E E E E
8 B B B B
Код для создания кадра данных:
d = {'col1':['A','C','E','A','B','D','F','E','B'], 'col2':['C','E','A','D','B','D','F','E','B'],
'col3':['B','E','E','D','B','D','A','E','B'], 'col4':['D','A','A','D','B','D','F','E','B']}
df = pd.DataFrame(data=d)
Пусть list1 будет ['A', 'C', 'E'], а list2 будет ['B', 'D', 'F'].
Что я хочу, это следующее: если в col1 остается элемент из списка list1, а в одном из col2-col4 остается элемент из списка list2, то я хочу удалить последний элемент (поэтому замените его на '').
Я попробовал df['col2'].loc[(df['col1'] in list1) & (df[['col2'] in list2)]=''
, что не совсем то, что я хочу, но, по крайней мере, идет в правильном направлении, к сожалению, это не работает. Может ли кто-нибудь помочь, пожалуйста?
Это мой ожидаемый результат:
col1 col2 col3 col4
0 A B D
1 C E E A
2 E A E A
3 A D D
4 B B B B
5 D D D D
6 F F A F
7 E E E E
8 B B B B