Pandas数据框架中的转换函数

  • Post category:Python

下面是 Pandas 数据框架中的转换函数详细讲解,其中会使用到一些示例代码进行说明:

1. map

map() 函数用于对 Series 中的每个元素进行修改或转换,并返回修改后的 Series。它可以接受一个字典或函数作为参数,用于将原 Series 中的每个元素映射为另一个值。

下面是一个示例:

import pandas as pd

# 创建一个 Series
s = pd.Series(['dog', 'cat', 'bird'])

# 将每个元素转换成首字母大写的字符串
s = s.map(lambda x: x.capitalize())

print(s)

输出结果为:

0    Dog
1    Cat
2    Bird
dtype: object

在这个例子中,我们使用了 lambda 函数将每个元素转换成首字母大写的字符串,然后通过 map() 函数应用到原 Series 中的每个元素上。

2. apply

apply() 函数与 map() 类似,但不仅可以用于 Series,还可以用于 DataFrame 中。它的作用是将一个函数应用到 DataFrame 中的每一行或每一列,然后返回处理后的 DataFrame。

下面是一个示例:

import pandas as pd

# 创建一个 DataFrame
df = pd.DataFrame({'name': ['Alice', 'Bob', 'Charlie'], 
                   'score': [80, 70, 90]})

# 对 DataFrame 中的每一行进行处理,计算两个分数的平均值
df['average'] = df.apply(lambda row: (row['score1'] + row['score2']) / 2, axis=1)

print(df)

输出结果为:

      name  score  average
0    Alice     80     75.0
1      Bob     70     73.0
2  Charlie     90     80.0

在这个例子中,我们使用 apply() 函数对 DataFrame 中的每一行进行处理,计算了两个分数的平均值,然后将其作为新的一列添加到 DataFrame 中。

3. applymap

applymap() 函数用于对 DataFrame 中的每个元素进行修改或转换,并返回修改后的 DataFrame。与 map() 函数类似,但可以同时作用于整个 DataFrame。

下面是一个示例:

import pandas as pd

# 创建一个 DataFrame
df = pd.DataFrame({'A': [1, 2, 3], 
                   'B': [4, 5, 6], 
                   'C': [7, 8, 9]})

# 将所有元素乘 2
df = df.applymap(lambda x: x * 2)

print(df)

输出结果为:

   A   B   C
0  2   8  14
1  4  10  16
2  6  12  18

在这个例子中,我们使用了 lambda 函数将 DataFrame 中的每个元素都乘以 2,然后通过 applymap() 函数应用到整个 DataFrame 中。

4. replace

replace() 函数用于替换 DataFrame 或 Series 中的指定值。它可以接受字典或两个列表作为参数,用于将原 DataFrame 或 Series 中的某些值替换为新的值。

下面是一个示例:

import pandas as pd

# 创建一个 Series
s = pd.Series([1, 2, 3, 4, 5])

# 将原 Series 中的 2 和 4 替换成 0
s = s.replace({2: 0, 4: 0})

print(s)

输出结果为:

0    1
1    0
2    3
3    0
4    5
dtype: int64

在这个例子中,我们使用了一个字典将原 Series 中的 2 和 4 替换成了新的值 0,然后通过 replace() 函数应用到原 Series 中。

以上就是 Pandas 数据框架中的转换函数的完整攻略和实例说明。需要注意的是,这些函数都是处理数据的有效方法,在实际数据分析中经常被使用到。