Вы можете использовать df['base'].apply(lambda x: x.pop(1))
.Обратите внимание, что pop
действует на месте, поэтому вам не нужно присваивать результат base
(фактически, если вы это сделаете, вы получите удаленный элемент вместо оставшегося списка).
Однако, как говорит @jpp, вам следует рассмотреть возможность использования какой-либо другой структуры данных, например, фрейма данных с многоиндексным или трехмерным массивом пустышек.
И, учитывая ваше редактирование, вероятно, легче конвертироватьданные в фрейм данных с несколькими столбцами, а затем удалите дополнительный столбец, вместо того, чтобы пытаться манипулировать столбцом списков, а затем превратить его в окончательный кадр данных.Может показаться, что проще иметь «только один столбец», но вы просто помещаете дополнительную сложность в отдельный слой, а не избавляетесь от него.Pandas построен на основе двумерных данных, представленных в виде столбцов и строк, а не в виде одного столбца списков, поэтому вы стараетесь не использовать инструменты, которые были созданы для обеспечения pandas.
Предположительно, у вас было что-то вроде этого:
data=[['a','b','c'],
['c','d','e'],
['a','b','h']]
И вы сделали что-то вроде этого:
df = pd.DataFrame({'base':data})
Вместо этого вы должны сделать
df = pd.DataFrame(data)
df = df[[0,2]]