#python #pandas
#python #pandas
Вопрос:
у меня есть 9 столбцов, которые я пытаюсь изменить порядок, сохраняя при этом все остальные. я уверен, что об этом спрашивали раньше, но я не уверен, что использую правильную терминологию поиска.
по сути, если мои столбцы данных выглядят как:
Case A C D B E F H G Name
я хочу прибегнуть к:
Case A B C D E F G H Name
без необходимости указывать каждый отдельный столбец, например:
df = df['Case','A','B','C','D','E','F','G','H','Name]
потому что фактические данные содержат около 120 столбцов.
Комментарии:
1. Вам нужно будет предоставить некоторую логику, на основе которой вы хотите изменить порядок столбцов. В приведенном выше примере я бы, вероятно, сделал df.columns = [‘Case’] list(string.asciii_uppercase) [‘Name’] . Для df с 120 столбцами вы не предоставили логику
2. я бы хотел, чтобы гипотетические столбцы A-H следовали порядку предварительно определенного списка
3. насколько сложна ваша сортировка? если подойдет базовая сортировка по списку, если более сложная, поскольку у вас уже есть инициализированные pandas, вы можете преобразовать свои столбцы в серию, отсортировать их, а затем привести их обратно.
4. не очень сложный. в основном у меня есть десять переменных, которые я хочу отсортировать на основе указанного мной списка, сохраняя при этом все остальные переменные. переиндексация по этому списку удаляет все остальные столбцы
Ответ №1:
Вы можете использовать sorted
:
new_columns = ['Case'] sorted(df.columns[1:-1]) ['Name']
df = df[new_columns]
Вывод:
Case A B C D E F G H Name