При манипулировании данными 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