Эффективные методы изменения порядка столбцов DataFrame на основе списка в Python

В задачах анализа и манипулирования данными часто возникают ситуации, когда вам необходимо изменить порядок столбцов DataFrame на основе определенного порядка, определенного списком. В этой статье представлены несколько эффективных методов достижения этой цели в Python, а также примеры кода.

Метод 1: использование переиндексации DataFrame

import pandas as pd
def reorder_columns(df, column_order):
    return df.reindex(columns=column_order)
# Usage example
column_order = ['Name', 'Age', 'City', 'Salary']
df = pd.DataFrame({'Age': [25, 30, 35],
                   'Name': ['John', 'Alice', 'Bob'],
                   'Salary': [5000, 6000, 4000],
                   'City': ['New York', 'London', 'Paris']})
reordered_df = reorder_columns(df, column_order)
print(reordered_df)

Метод 2: использование выбора столбца DataFrame

import pandas as pd
def reorder_columns(df, column_order):
    return df[column_order]
# Usage example
column_order = ['Name', 'Age', 'City', 'Salary']
df = pd.DataFrame({'Age': [25, 30, 35],
                   'Name': ['John', 'Alice', 'Bob'],
                   'Salary': [5000, 6000, 4000],
                   'City': ['New York', 'London', 'Paris']})
reordered_df = reorder_columns(df, column_order)
print(reordered_df)

Метод 3. Использование метода loc DataFrame

import pandas as pd
def reorder_columns(df, column_order):
    return df.loc[:, column_order]
# Usage example
column_order = ['Name', 'Age', 'City', 'Salary']
df = pd.DataFrame({'Age': [25, 30, 35],
                   'Name': ['John', 'Alice', 'Bob'],
                   'Salary': [5000, 6000, 4000],
                   'City': ['New York', 'London', 'Paris']})
reordered_df = reorder_columns(df, column_order)
print(reordered_df)

Метод 4. Использование метода DataFrame loc с переупорядочением

import pandas as pd
def reorder_columns(df, column_order):
    return df.loc[:, df.columns.intersection(column_order)]
# Usage example
column_order = ['Name', 'Age', 'City', 'Salary']
df = pd.DataFrame({'Age': [25, 30, 35],
                   'Name': ['John', 'Alice', 'Bob'],
                   'Salary': [5000, 6000, 4000],
                   'City': ['New York', 'London', 'Paris'],
                   'ExtraColumn': [1, 2, 3]})
reordered_df = reorder_columns(df, column_order)
print(reordered_df)

В этой статье мы рассмотрели несколько методов изменения порядка столбцов DataFrame на основе заданного списка. Используя методы переиндексации, выбора столбцов и loc библиотеки pandas, мы можем эффективно добиться желаемого порядка столбцов. Эти методы обеспечивают гибкость и простоту использования при работе со структурами DataFrame в Python.

Не забудьте выбрать метод, который лучше всего соответствует вашим конкретным требованиям. Используя эти методы, вы можете легко манипулировать столбцами DataFrame, чтобы они соответствовали порядку, определенному списком, что позволяет вам выполнять дальнейший анализ и обработку ваших данных.