«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как эффективно добавить несколько столбцов в фрейм данных Pandas одновременно?

Как эффективно добавить несколько столбцов в фрейм данных Pandas одновременно?

Опубликовано 8 ноября 2024 г.
Просматривать:838

How to Efficiently Add Multiple Columns to a Pandas DataFrame Simultaneously?

Добавление нескольких столбцов в DataFrame Pandas одновременно

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

Задача

Как показано в приведенном примере, следующий синтаксис не удается создать новые столбцы, как предполагалось:

df[['column_new_1', 'column_new_2', 'column_new_3']] = [np.nan, 'dogs', 3]

Это связано с тем, что Pandas требует, чтобы правая часть назначения была DataFrame при использовании синтаксиса списка столбцов. Скалярные значения или списки несовместимы с этим подходом.

Решения

Несколько альтернативных методов предлагают жизнеспособные решения для одновременного добавления нескольких столбцов:

Метод 1: Индивидуальные назначения Использование распаковки итератора

df['column_new_1'], df['column_new_2'], df['column_new_3'] = np.nan, 'dogs', 3

Метод 2: расширение одной строки для соответствия индексу

df[['column_new_1', 'column_new_2', 'column_new_3']] = pd.DataFrame([[np.nan, 'dogs', 3]], index=df.index)

Метод 3: объединение с временным фреймом данных с использованием pd.concat

df = pd.concat(
    [
        df,
        pd.DataFrame(
            [[np.nan, 'dogs', 3]], 
            index=df.index, 
            columns=['column_new_1', 'column_new_2', 'column_new_3']
        )
    ], axis=1
)

Метод 4: объединение с временным фреймом данных с использованием .join

df = df.join(pd.DataFrame(
    [[np.nan, 'dogs', 3]], 
    index=df.index, 
    columns=['column_new_1', 'column_new_2', 'column_new_3']
))

Метод 5. Использование словаря для временного кадра данных

df = df.join(pd.DataFrame(
    {
        'column_new_1': np.nan,
        'column_new_2': 'dogs',
        'column_new_3': 3
    }, index=df.index
))

Метод 6: используйте .assign() с аргументами из нескольких столбцов

df = df.assign(column_new_1=np.nan, column_new_2='dogs', column_new_3=3)

Метод 7: создайте столбцы, затем присвойте значения

new_cols = ['column_new_1', 'column_new_2', 'column_new_3']
new_vals = [np.nan, 'dogs', 3]
df = df.reindex(columns=df.columns.tolist()   new_cols)    # add empty cols
df[new_cols] = new_vals        # multi-column assignment works for existing cols

Метод 8: множественные последовательные присвоения

df['column_new_1'] = np.nan
df['column_new_2'] = 'dogs'
df['column_new_3'] = 3

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

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3