问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

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

创作时间:
作者:
@小白创作中心

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

引用
1
来源
1.
https://geek-docs.com/pandas/pandas-dataframe/return-multiple-columns-using-pandas-apply-method.html

Pandas库中的apply()方法是一个非常强大的工具,可以对DataFrame的行或列应用自定义函数。本文将详细介绍如何使用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.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
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号