Вернуть несколько столбцов с помощью метода Pandas apply ()

Опубликовано: 27 Марта, 2022

Объекты, переданные в pandas.apply (), являются объектами Series, индекс которых является либо индексом DataFrame (ось = 0), либо столбцами DataFrame (ось = 1). По умолчанию (result_type = None) окончательный тип возвращаемого значения выводится из типа возвращаемого значения применяемой функции. В противном случае это зависит от аргумента result_type.

Syntax: DataFrame.apply(func, axis=0, broadcast=None, raw=False, reduce=None, result_type=None, args=(), **kwds)

Below are some programs which depicts the use of pandas.DataFrame.apply()

Example 1:

# Program to illustrate the use of 
# pandas.DataFrame.apply() method
  
# Importing required Libraries
import pandas
import numpy
  
# Creating dataframe
dataFrame = pandas.DataFrame([[4, 9], ] * 3, columns =["A", "B"])
print("Data Frame:")
display(dataFrame)
  
# Using pandas.DataFrame.apply() on the data frame
print("Returning multiple columns from Pandas apply()")
dataFrame.apply(numpy.sqrt)

Выход:


Использование универсальной функции numpy (в данном случае то же, что и numpy.sqrt (dataFrame)).

Example 2:

# Program to illustrate the use of 
# pandas.DataFrame.apply() method
  
# Importing required Libraries
import pandas
import numpy
  
# Creating dataframe
dataFrame = pandas.DataFrame([[4, 9], ] * 3, columns =["A", "B"])
print("Data Frame:")
display(dataFrame)
  
# Using pandas.DataFrame.apply() on the data frame
print("Returning multiple columns from Pandas apply()")
dataFrame.apply(numpy.sum, axis = 0)

Выход:


Использование функции сокращения для столбцов.

Example 3:

# Program to illustrate the use of 
# pandas.DataFrame.apply() method
  
# Importing required Libraries
import pandas
import numpy
  
# Creating dataframe
dataFrame = pandas.DataFrame([[4, 9], ] * 3, columns =["A", "B"])
print("Data Frame:")
display(dataFrame)
  
# Using pandas.DataFrame.apply() on the data frame
print("Returning multiple columns from Pandas apply()")
dataFrame.apply(numpy.sum, axis = 1)

Выход:

Использование функции сокращения для строк.

Example 4:

# Program to illustrate the use of 
# pandas.DataFrame.apply() method
  
# Importing required Libraries
import pandas
import numpy
  
# Creating dataframe
dataFrame = pandas.DataFrame([[4, 9], ] * 3, columns =["A", "B"])
print("Data Frame:")
display(dataFrame)
  
# Using pandas.DataFrame.apply() on the data frame
print("Returning multiple columns from Pandas apply()")
dataFrame.apply(lambda x: [1, 2], axis = 1)

Выход:

Возврат в виде списка приведет к серии.

Example 5:

# Program to illustrate the use of 
# pandas.DataFrame.apply() method
  
# Importing required Libraries
import pandas
import numpy
  
# Creating dataframe
dataFrame = pandas.DataFrame([[4, 9], ] * 3, columns =["A", "B"])
print("Data Frame:")
display(dataFrame)
  
# Using pandas.DataFrame.apply() on the data frame
print("Returning multiple columns from Pandas apply()")
dataFrame.apply(lambda x: [1, 2], axis = 1, result_type ="expand")

Выход:

Передача result_type = 'expand' расширит результаты в виде списка до столбцов фрейма данных.

Example 6:

# Program to illustrate the use of 
# pandas.DataFrame.apply() method
  
# Importing required Libraries
import pandas
import numpy
  
# Creating dataframe
dataFrame = pandas.DataFrame([[4, 9], ] * 3, columns =["A", "B"])
print("Data Frame:")
display(dataFrame)
  
# Using pandas.DataFrame.apply() on the data frame
print("Returning multiple columns from Pandas apply()")
dataFrame.apply(lambda x: pandas.Series(
    [1, 2], index =["foo", "bar"]), axis = 1)

Выход:

Возврат серии внутри функции аналогичен передаче result_type = 'expand'. В результате имена столбцов будут индексом серии.

Example 7:

# Program to illustrate the use of 
# pandas.DataFrame.apply() method
  
# Importing required Libraries
import pandas
import numpy
  
# Creating dataframe
dataFrame = pandas.DataFrame([[4, 9], ] * 3, columns =["A", "B"])
print("Data Frame:")
display(dataFrame)
  
# Using pandas.DataFrame.apply() on the data frame
print("Returning multiple columns from Pandas apply()")
dataFrame.apply(lambda x: [1, 2], axis = 1, result_type ="broadcast")

Выход:


Передача result_type = 'broadcast' гарантирует тот же результат формы, независимо от того, возвращает ли функция список или скаляр, и транслирует его по оси. Полученные имена столбцов будут оригиналами.

Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.

Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.