pandas apply()函数
时间: 2023-10-29 22:53:12 浏览: 116
pandas中的apply()函数是用于对DataFrame或Series对象的每个元素应用自定义函数的方法。它可以将一个函数应用于DataFrame的一行或一列,或者应用于Series的每个元素。apply()函数可以极大地简化数据处理和转换的过程。
使用apply()函数时,你需要传入一个函数作为参数,并指定在哪个轴上应用这个函数。默认情况下,apply()函数在每列上应用函数,也就是沿着行的方向进行操作。如果要在行上应用函数,可以指定axis=1。
下面是一个示例,展示了如何使用apply()函数将一个自定义函数应用于DataFrame对象的每一行:
```python
import pandas as pd
# 创建一个DataFrame
df = pd.DataFrame({'A': [1, 2, 3],
'B': [4, 5, 6],
'C': [7, 8, 9]})
# 定义一个自定义函数,将每行的最大值和最小值相加
def add_min_max(row):
return row.max() + row.min()
# 在每行上应用自定义函数
df['D'] = df.apply(add_min_max, axis=1)
print(df)
```
输出结果为:
```
A B C D
1 4 7 8
1 2 5 8 10
2 3 6 9 12
```
在这个示例中,自定义函数add_min_max会接收每一行作为输入,并返回该行的最大值和最小值之和。apply()函数会在每一行上调用该函数,并将结果存储到新列D中。
除了对DataFrame对象的每一行应用函数,apply()函数还可以用于对Series对象的每个元素应用函数。在这种情况下,函数将被应用于Series中的每个元素,并返回一个新的Series。例如:
```python
# 创建一个Series
s = pd.Series([1, 2, 3, 4])
# 定义一个自定义函数,将每个元素乘以2
def multiply_by_two(x):
return x * 2
# 应用自定义函数到Series中的每个元素
result = s.apply(multiply_by_two)
print(result)
```
输出结果为:
```
0 2
1 4
2 6
3 8
dtype: int64
```
在这个示例中,自定义函数multiply_by_two会将每个元素乘以2,并返回一个新的Series。apply()函数会在Series中的每个元素上调用该函数,并返回计算结果的新Series。
阅读全文