Каждый раз, когда я пытаюсь реорганизовать столбцы в этом наборе данных с помощью Pandas в Python, все значения становятся Nan. Как мне это исправить?

#python #pandas #numpy #nan #reindex

Вопрос:

В рамках задания я пытаюсь реорганизовать столбцы таким образом, чтобы типы (кофе) располагались в алфавитном порядке. Я реализовал следующий код, и он действительно работает:

 #Rearrange the names of the Coffees so they are in alphabetical order
Reorganized = ["Channel", "Region", "Arabica", "Cappuccino", "Espresso", "Latte", "Lungo"]
BeanFileCleaned = BeanFileCleaned.reindex(columns=Reorganized)

BeanFileCleaned
 

Однако, когда я снова запускаю файл, все значения в таблице становятся Nan, и по какой-то причине строки также имеют то же имя, что и столбцы (строк много, так что этого не должно произойти).

Как мне это исправить? Любая помощь приветствуется, заранее спасибо.

Редактировать: Забыл добавить, вот как выглядит результат:

введите описание изображения здесь

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

1. newDF = BeanFileCleaned [Reorganized] ?

2. Это означало бы, что это не те заголовки столбцов, которые у вас есть. Из чего получается результат print(BeanFileCleaned.columns) ?

3. @JoranBeasley Я сделал это, я получил тот же результат

4. @HenryEcker Вывод от использования этого просто приводит к именам столбцов. Он больше ничего не делает

5. Верно. Но переиндексирование столбцов, возвращающих nan, означает, что у вас нет этих столбцов для начала. Вы не можете изменить порядок столбцов, которые не существуют. Поэтому я спросил, какие у вас колонки, прежде чем вы попытаетесь переиндексировать…

Ответ №1:

Предполагая, что BeanFileCleaned-это фрейм данных pandas, вы, вероятно, ищете что-то подобное.

 #Rearrange the names of the Coffees so they are in alphabetical order
Reorganized = ["Channel", "Region", "Arabica", "Cappuccino", "Espresso", "Latte", "Lungo"]
Reorganized = sorted(Reogranized)
BeanFileCleaned = BeanFileCleaned[Reorganized]

 

Если у вас есть дополнительные столбцы, которые вы хотите добавить в конец, вы можете сделать это следующим образом

 all_columns = BeanFileCleaned.columns

#Rearrange the names of the Coffees so they are in alphabetical order
Reorganized = ["Channel", "Region", "Arabica", "Cappuccino", "Espresso", "Latte", "Lungo"]
Reorganized = sorted(Reogranized)
Reorganized_set = set(Reorganized)
rest_columns = [column for column in all_columns if column not in Reorganized_set]

BeanFileCleaned = BeanFileCleaned[Reorganized   rest_columns]

 

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

1. Мне пришлось кое-что отредактировать с моей стороны, но ваше предложение сработало . Для любого в будущем мой окончательный рабочий код был следующим: #Rearrange the names of the Coffees so they are in alphabetical order AlphabeticalOrder = ["Channel", "Region", "Arabica", "Cappuccino", "Espresso", "Latte", "Lungo"] BeanFileCleaned = BeanFileCleaned.reindex(columns=AlphabeticalOrder) BeanFileCleaned = BeanFileCleaned[AlphabeticalOrder]