Итак, я хотел бы сделать фрагмент кадра данных, а затем установить значение первого элемента в этом фрагменте без копирования фрейма данных. Например:
df = pandas.DataFrame(numpy.random.rand(3,1))
df[df[0]>0][0] = 0
Этот фрагмент не имеет значения и только для примера и снова вернет весь фрейм данных. Точка, делая это, как в примере, вы получаете настройку с предупреждением об ошибке (понятно). Я также попробовал срез сначала, а затем использовал ILOC/IX/LOC и дважды использовал ILOC, то есть что-то вроде:
df.iloc[df[0]>0,:][0] = 0
df[df[0]>0,:].iloc[0] = 0
И ни одна из этих работ не работает. Опять же - я не хочу делать копию фрейма данных, даже если он имеет идентификатор только нарезанной версии.
EDIT: Кажется, есть два способа, используя маску или IdxMax. Метод IdxMax работает, если ваш индекс уникален, а метод маски - нет. В моем случае индекс не уникален, о чем я забыл упомянуть в начальном посте.