Приносим извинения за псевдокод, но я разговариваю по телефону, а не дома, чтобы провести некоторое тестирование.
У меня были проблемы с попытками склеить (логический индекс) и предоставить индексы списка. В зависимости от того, что я делаю с получившимся фреймом, я получу совершенно неожиданные результаты. Я думаю, что то, что у меня в конце поста, будет работать, но я хочу понять, почему.
Так например ....
condition_1 = df['C'] > 100
indexes = df.groupby.get_group(['A']['B']).index
Насколько я помню, следующее не работает, потому что индекс не выравнивается должным образом, но он может выдавать или не выдавать ошибку в зависимости от того, что использует данные, например, matplotlib или событие, выполняющее .count ().
df[condition_1].loc[indexes]
df.loc[indexes][condition_1]
Куда я думаю, что мне нужно идти, так это складывать лок?
df.loc[condition_1].loc[indexes]
Это правильный порядок? Что делать, если мне нужно установить столбец D, когда это условие выполнено? Это правильный путь, потому что это не имеет смысла.
df.loc[condition_1,'D'].loc[indexes] = True
Или стоит попробовать что-то подобное?
indexes2 = df.loc[condition_1].loc[indexes].index
df.loc[indexes2, 'D' ] = True
Спасибо!
grouped = df.groupby.get_group(['A']['B'])
indexes = grouped.loc[condition_1].index
df.loc[indexes, 'State'] = True