Здесь есть две проблемы.Во-первых, это причудливость панд при работе со списками.Чтобы заменить значения в DataFrame списком, вам нужно сделать что-то вроде этого:
df.loc[df.a == 0, "a"] = [[] for _ in df[df.a == 0]]
Это создаст n
пустой список, основанный на количестве элементов, соответствующих критериям (df == 0
)
Вторая проблема заключается в том, что ваш столбец имеет целочисленный тип, и вы не можете сохранить список в целочисленном столбце.Поэтому, прежде чем вы сможете назначить список, вам нужно сначала преобразовать тип столбца в объект.
df = df.astype(object)
df.loc[df.a == 0, "a"] = [[] for _ in df[df.a == 0]]