Замена столбцов при удалении некоторых элементов в фрейме данных Pandas

#python #pandas #dataframe

#python #pandas #фрейм данных

Вопрос:

У меня есть фрейм данных, подобный этому

 feature feature1
[1,2,3]  0
[4,5,6]  0
0        [6,7,8]   
0        [7,8,9]
  

Я хочу преобразовать этот фрейм данных следующим образом,

 feature
[1,2,3]
[4,5,6]
[6,7,8]
[7,8,9]
  

Чтобы быть точным, посмотрите на прикрепленный скриншот

Массив представляет векторы объектов

Я попытался поменять столбцы местами, но не выдал правильного результата. Пожалуйста, предложите.

Комментарии:

1. скриншот и пример не совпадают, будет лучше, если вы разместите 5 строк как df.head(5).to_dict()

2. Да, я хотел опубликовать только с помощью df.head(), но в каждом массиве всего 420 элементов, и это будет невозможно. @anky

Ответ №1:

Давайте попробуем where с bfill

 df.where(df.ne(0)).bfill(1)['feature']
  

Комментарии:

1. Ошибка значения: значение истинности массива с более чем одним элементом неоднозначно. Используйте.any() или.all() — Я пытался, но получаю эту ошибку.

Ответ №2:

Попробуйте с

 df['New_feature'] = df.feature.mask(df.feature.eq('0'),df.feature1)
  

Комментарии:

1. Я пробовал с вашим решением, но оно не дает необходимого решения, с помощью print(data.New_feature) он просто печатает элементы ‘feature’ первого столбца.

2. @AdityaParikh df.feature=df.feature.astype(объект), затем выполните описанное выше