使用Pandas apply()方法返回多列数据

使用Pandas apply()方法返回多列数据

传递给pandas.apply()的对象是系列对象,其索引是DataFrame的索引(axis=0)或DataFrame的列(axis=1)。默认情况下(result_type=None),最终的返回类型是由应用函数的返回类型推断出来的。否则,它取决于 result_type 参数。

语法:

s.apply(func, convert_dtype=True, args=())

使用apply()方法创建Dataframe以返回多个列

# Importing required Libraries
import pandas
import numpy
 
# Creating dataframe
dataFrame = pandas.DataFrame
        ([[4, 9], ] * 3, columns =['A', 'B'])
display(dataFrame)

输出:

使用Pandas apply()方法返回多列数据

下面是一些描述pandas.DataFrame.apply()的使用的程序

示例 1:

使用Numpy的通用函数(在这种情况下与numpy.sqrt()相同)。

# Using pandas.DataFrame.apply() on the data frame
print('returning multiple columns from Pandas apply()')
dataFrame.apply(numpy.sqrt)

输出:

returning multiple columns from Pandas apply()

A   B
0    2.0    3.0
1    2.0    3.0
2    2.0    3.0

示例 2:

在列上使用还原函数。

# Using pandas.DataFrame.apply() on the data frame
print('returning multiple columns from Pandas apply()')
dataFrame.apply(numpy.sum, axis = 0)

输出:

returning multiple columns from Pandas apply()
A    12
B    27
dtype: int64 

示例 3:

在行上使用还原函数。

# Using pandas.DataFrame.apply() on the data frame
print('returning multiple columns from Pandas apply()')
dataFrame.apply(numpy.sum, axis = 1)

输出:

returning multiple columns from Pandas apply()
0    13
1    13
2    13
dtype: int64 

示例 4:

返回一个类似于列表的东西将导致一个使用lambda函数的系列。

# Using pandas.DataFrame.apply() on the data frame
print('returning multiple columns from Pandas apply()')
dataFrame.apply(lambda x: [1, 2], axis = 1)

输出:

returning multiple columns from Pandas apply()
0    [1, 2]
1    [1, 2]
2    [1, 2]
dtype: object 

示例 5:

传递result_type=’expand’将把列表式的结果扩展到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')

输出:

returning multiple columns from Pandas apply()
0    1
0    1    2
1    1    2
2    1    2 

示例 6:

在函数中返回一个系列,类似于传递 result_type=’expand’。结果的列名将是系列的索引。

# 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)

输出:

returning multiple columns from Pandas apply()
foo    bar
0    1    2
1    1    2
2    1    2 

示例 7:

传递result_type=’broadcast’将确保同一形状的结果,无论是列表还是标量都由函数返回,并沿axis线广播。结果的列名将是原来的。

# 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')

输出:

returning multiple columns from Pandas apply()
A    B
0    1    2
1    1    2
2    1    2 

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程