📅  最后修改于: 2023-12-03 14:53:05.313000             🧑  作者: Mango
Pandas 是 Python 中有名的数据操作库,适用于数据清洗、处理、分析等方面工作。其中,apply() 是一个常用的函数,用于在 Pandas 对象上执行自定义操作,以实现数据处理。
在 Pandas 中,apply() 函数可以作用于序列、数据框等对象的整个行或列上。它提供了一种便捷的方式,来对这些对象进行操作,并返回结果序列或数据框。
apply() 有两种使用方式。一种是在数据框中使用,对每一列数据应用一个自定义函数,返回新的 Series 或 DataFrame。另一种则是在 Series 中使用,对其中每一元素应用一个自定义函数,返回新的 Series。
下面将演示如何在 Pandas 数据框中就地使用 apply() 来实现数据处理。
首先,我们需要创建一个包含数据的数据框:
import pandas as pd
import numpy as np
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})
print(df)
输出结果如下:
A B C
0 1 4 7
1 2 5 8
2 3 6 9
现在,我们希望对每一列数据应用一个自定义函数,使每个数据减去该列的均值。可以使用 apply() 函数实现:
df.apply(lambda x: x - np.mean(x))
这个 lambda 函数对数据框中的每一列数据进行操作,计算每列数据的平均值,然后取每个数据减去该列的平均值。运行结果如下:
A B C
0 -1.0 -1.0 -1.0
1 0.0 0.0 0.0
2 1.0 1.0 1.0
另外,我们也可以在 Series 中就地使用 apply() 进行操作。例如,对于数据框中的一列,我们希望将每个数据的开方值保留两位小数。可以使用下面的代码实现:
df['C'] = df['C'].apply(lambda x: round(np.sqrt(x), 2))
这个 lambda 函数对数据框中的 C 列进行操作,计算每个数据的开方值并保留两位小数,然后将结果赋值给原来的 C 列。运行结果如下:
A B C
0 1 4 2.65
1 2 5 2.83
2 3 6 3.00
apply() 是 Pandas 中非常有用的函数,它提供了一种灵活、快捷的方式,用于数据的处理和分析。可以同时对序列、数据框等对象进行操作,并返回新的序列或数据框。在实际的数据清洗和处理中,apply() 经常会用到。