详解Pandas的三大利器(map,apply,applymap)

  • Post category:Python

下面是详解Pandas的三大利器(map,apply,applymap)的完整攻略。

一. map函数

map函数是一种映射函数,它可以将一个Series里的每一个元素都应用一个函数。

1.语法

DataFrame['列名'] = DataFrame['列名'].map(函数名)

2.示例

例如,我们有以下一组数据:

import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3, 4, 5], 'B': [10, 20, 30, 40, 50]})

我们可以使用map函数将其中的A列数据全部乘以2:

df['A'] = df['A'].map(lambda x: x*2)
# 或者使用以下方式
df['A'] = df['A'].apply(lambda x: x*2)
print(df)

输出结果为:

   A   B
0  2  10
1  4  20
2  6  30
3  8  40
4 10  50

二. apply函数

apply函数可以将一个函数应用于一组数据,可以是行或列。apply函数的参数可以自己指定。

1.语法

DataFrame['新列名'] = DataFrame.apply(函数名, axis=1/0)

2.示例

例如,我们有以下一组数据:

import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3, 4, 5], 'B': [10, 20, 30, 40, 50], 'C': [100, 200, 300, 400, 500]})

我们可以使用apply函数将其中的ABC列数据全部相加:

df['D'] = df.apply(lambda x: x['A'] + x['B'] + x['C'], axis=1)
print(df)

输出结果为:

   A   B    C    D
0  1  10  100  111
1  2  20  200  222
2  3  30  300  333
3  4  40  400  444
4  5  50  500  555

三. applymap函数

applymap函数可以将一个函数应用到DataFrame中的每个元素上,支持任何一元素函数。

1.语法

DataFrame = DataFrame.applymap(函数名)

2.示例

例如,我们有以下一组数据:

import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3, 4, 5], 'B': [10, 20, 30, 40, 50], 'C': [100, 200, 300, 400, 500]})

我们可以使用applymap函数将其中的ABC列数据全部取负:

df = df.applymap(lambda x: -x)
print(df)

输出结果为:

  A   B    C
0 -1 -10 -100
1 -2 -20 -200
2 -3 -30 -300
3 -4 -40 -400
4 -5 -50 -500

以上就是Pandas中三大利器的详解。