Я хотел бы замаскировать (или присвоить 'NA') значение столбца в кадре данных, если выполняются два условия.Это было бы относительно просто, если бы условия выполнялись построчно, с чем-то вроде:
mask = ((df['A'] < x) & (df['B'] < y))
df.loc[mask, 'C'] = 'NA'
, но у меня возникли некоторые затруднения с выяснением того, как выполнить эту задачу в моем фрейме данных, который структурирован болееили меньше, например:
df = pd.DataFrame({ 'A': (188, 750, 1330, 1385, 188, 750, 810, 1330, 1385),
'B': (2, 5, 7, 2, 5, 5, 3, 7, 2),
'C': ('foo', 'foo', 'foo', 'foo', 'bar', 'bar', 'bar', 'bar', 'bar') })
A B C
0 188 2 foo
1 750 5 foo
2 1330 7 foo
3 1385 2 foo
4 188 5 bar
5 750 5 bar
6 810 3 bar
7 1330 7 bar
8 1385 2 bar
Значения в столбце 'A', когда 'C' == 'foo'
, также должны быть найдены, когда 'C' == 'bar'
(что-то вроде индекса), хотя в обоих случаях 'foo' могут отсутствовать данныеи «бар».Как я могу замаскировать (или назначить 'NA') строки столбца 'B', если оба значения 'foo' и 'bar' меньше 5 или отсутствует какой-либо из них?В приведенном выше примере результат будет примерно таким:
A B C
0 188 2 foo
1 750 5 foo
2 1330 7 foo
3 1385 NA foo
4 188 5 bar
5 750 5 bar
6 810 NA bar
7 1330 7 bar
8 1385 NA bar