Pandas Assign: как назначить новые столбцы для DataFrame

Метод Pandas Dataframe.assign () назначает новые столбцы DataFrame, возвращая новый объект (копию) с новыми столбцами, добавленными к исходным. Будьте осторожны при назначении новых столбцов, потому что существующие столбцы, которые были повторно назначены, будут перезаписаны.

Pandas assign example

Чтобы назначить новые столбцы DataFrame, используйте метод Pandas assign (). Assign () возвращает новый объект со всеми исходными столбцами в дополнение к новым. Существующие переназначенные столбцы будут перезаписаны. Длина вновь назначенного столбца должна соответствовать количеству строк в DataFrame.

Синтаксис

 DataFrame.assign (*  * kwargs) 

Параметры

** kwargs: dict of {str: callable or Series}

Имена столбцов являются ключевыми словами. Если значения вызываемые, они вычисляются в DataFrame и назначаются новым столбцам. Вызываемые значения не должны изменять входной DataFrame. Если значения не вызываются (например, серия, скаляр или массив), они просто присваиваются.

Возвращаемое значение

Он возвращает новый DataFrame с новыми столбцами в дополнение ко всем существующим столбцам.

Пример функции Pandas assign ()

Давайте определим DataFrame, который имеет только один столбец с именем price.

Теперь цена увеличена на 5%. Итак, мы добавим новый столбец под названием

Давайте посмотрим, как мы можно добавить новый столбец с помощью метода pandas DataFrame.assign ().

См. следующий код.

 импортировать панды как pddt = {'price'  : [520, 500]} df1 = pd.DataFrame (data = dt) print (df1) print ('----------------------') print (  'После назначения нового столбца Пересмотренной цены') df2 = df1.assign (revised_price = lambda x: x.price + x.price * 0.05) print (df2) 

Вывод

 python3 app.py price0 5201 500 ---------------------- После назначения нового столбца цены пересмотренной цены  revised_price0 520 546.01 500 525.0 

Мы использовали лямбда-функцию Python, чтобы добавить 5% в значения столбца цен, и создали новый столбец с именем revised_price и назначили его DataFrame.

Добавить новый столбец в DataFrame со значениями, основанными на других столбцах

Вы также можете получить такое же поведение r, что может быть достигнуто путем прямой ссылки на существующую серию или последовательность.

 # app.pyimport pandas as pddt = {'price': [520, 500]} df1 = pd.DataFrame (data =  dt) print (df1) print ('----------------------') print ('После назначения нового столбца пересмотренной цены') df2 = df1.assign  (revised_price = df1 ['price'] + df1 ['price'] * 0,05) print (df2) 

Вывод

 приложение python3. py price0 5201 500 ---------------------- После назначения нового столбца Revised Price price revised_price0 520 546,01 500 525,0 

Pandas назначает несколько столбцов.

Давайте добавим два новых столбца с именами revised_price и changed_price.

 # app.pyimport pandas as pddt = {'price': [520, 500]} df1 = pd.DataFrame (data = dt) print (df1) print ('-------  --------------- ') print (' После назначения двух новых столбцов Пересмотренной цены ') df2 = df1.assign (revised_price = df1 [' price '] + df1 [' price '  ] * 0,05, changed_price = df1 ['price'] + df1 ['price'] * 0,10) print (df2) 

Вывод

 python3 app.py price0 5201 500 ---------------------- После назначения двух новых столбцов Revised Price price revised_price changed_price0 520 546,0 572,01 500 525,0 550,0  

В первом добавленном столбце мы увеличили цену на 5%.

Во втором новом добавленном столбце мы увеличили цену на 10%.

Итак, мы можем добавить несколько новых столбцов в DataFrame с помощью метода pandas.DataFrame.assign () .

Pandas: добавить новый столбец со значениями в список

Допустим, мы хотим добавить новый столбец « Items » со значениями по умолчанию из списка. Давайте посмотрим, как это сделать,

 # app.pyimport pandas as pddt = {'price': [520, 500]} df1 = pd.DataFrame (data = dt) print (df1) print  ('----------------------') print ('После добавления нового столбца') df1 ['items'] = ['Apple Watch', 'Air  Pod '] print (df1) 

Вывод

 python3 app.py price0 5201 500 --------  -------------- После добавления нового столбца Price items0 520 Apple Watch1 500 Air Pod 

DataFrame df1 не имел любой столбец с именем ‘items’, поэтому он добавит новый столбец в этот DataFrame.

Если значения, представленные в списке, меньше количества индексов, тогда он будет дать ValueError.

Если столбец уже существует, он заменит все его значения.

Добавить новый столбец в DataFrame с тем же значением по умолчанию

Давайте добавим новый столбец ‘ category ‘ с тем же значением ‘ Электроника ‘в каждом индексе.

 # app.pyimport pandas as pddt = {'  цена ': [520, 500]} df1 = pd.DataFrame (data = dt) print (df1) print (' ---------------------- ')  print ('После добавления нового столбца') df1 ['category'] = 'Electronics'print (df1) 

Вывод

 python3 app.py price0 5201 500 ---------------------- После добавления нового столбца ценовая категория 0 520 Электроника1 500 Электроника 

От В приведенном выше выводе мы видим, что столбец категории был добавлен, и оба значения индекса равны Electronics.

Метод Pandas assign () используется для назначения новых столбцов в DataFrame. Метод возвращает новый объект со всеми исходными столбцами в дополнение к новым.

См. Также

Pandas dropna ()

Pandas переименовывает столбец DataFrame

Pandas iloc []

Pandas Pivot Table

Pandas transpose ()

Оцените статью
nanomode.ru
Добавить комментарий