📜  如何就地使用 Pandas apply()?(1)

📅  最后修改于: 2023-12-03 14:53:05.313000             🧑  作者: Mango

如何就地使用 Pandas apply()?

Pandas 是 Python 中有名的数据操作库,适用于数据清洗、处理、分析等方面工作。其中,apply() 是一个常用的函数,用于在 Pandas 对象上执行自定义操作,以实现数据处理。

什么是 apply()?

在 Pandas 中,apply() 函数可以作用于序列、数据框等对象的整个行或列上。它提供了一种便捷的方式,来对这些对象进行操作,并返回结果序列或数据框。

apply() 有两种使用方式。一种是在数据框中使用,对每一列数据应用一个自定义函数,返回新的 Series 或 DataFrame。另一种则是在 Series 中使用,对其中每一元素应用一个自定义函数,返回新的 Series。

如何就地使用 apply()?

下面将演示如何在 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() 经常会用到。