Pandas 函数应用

Pandas 函数应用,要将自定义或其他库的函数应用于Pandas对象,有三个重要的方法,下面来讨论如何使用这些方法。
使用适当的方法取决于函数是否期望在整个DataFrame行或列或元素上进行操作。

类型 函数 说明
表式函数应用 pipe() 可以通过将函数和适当数量的参数作为管道参数来执行自定义操作,从而对整个DataFrame执行操作。
行列函数应用 apply() 沿DataFramePanel的轴应用任意函数,它与描述性统计方法一样,apply()方法使用一个可选的axis参数。
元素函数应用 applymap() 和Series上的map()类似,接受任何Python函数,该函数要求能够接受单个值并返回单个值。

Pandas 函数应用

表式函数应用

可以通过将函数和适当数量的参数作为管道参数来执行自定义操作,从而对整个DataFrame执行操作。
例如,为DataFrame中的所有元素加上一个值2
adder 函数
adder函数将两个数值作为参数相加并返回总和。

def adder(ele1,ele2):
    return ele1+ele2

我们现在将使用自定义函数在DataFrame上执行操作

df = pd.DataFrame(np.random.randn(5,3),columns=['col1','col2','col3'])
df.pipe(adder,2)

参考示例代码如下:

import pandas as pd
import numpy as np

def adder(ele1,ele2):
   return ele1+ele2

df = pd.DataFrame(np.random.randn(5,3),columns=['col1','col2','col3'])
df.pipe(adder,2)
print (df)

执行结果如下:

       col1      col2      col3
0 -0.107034  0.621318 -0.315472
1 -1.674204 -0.456079 -0.239473
2  0.639198  0.067203  0.149201
3 -1.198951  0.274950 -0.045467
4 -1.363214  0.118386  1.657471

行或列函数应用

可以使用apply()方法沿DataFramePanel的轴应用任意函数,它与描述性统计方法一样,apply()方法使用一个可选的axis参数。
默认情况下,操作按列执行,该操作按列执行,将每一列作为类似数组的列。
示例1

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.randn(5,3),columns=['col1','col2','col3'])
df.apply(np.mean)
print (df)

执行结果如下:

       col1      col2      col3
0  1.099413  0.490379 -0.728655
1 -0.176489  0.399474 -1.667792
2  1.101385 -0.695297 -0.592555
3  0.868841  0.384286  0.251040
4 -0.446380  1.595689  0.583893

示例2:通过传递axis参数,可以在行上执行操作。

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.randn(5,3),columns=['col1','col2','col3'])
df.apply(np.mean,axis=1)
print (df)

执行结果如下:

       col1      col2      col3
0 -0.049716  1.442411 -0.044421
1  1.010427  0.341281  1.750932
2  1.790768  0.635563  0.327642
3 -0.861768  2.845562 -1.065606
4 -0.708383 -0.312307  0.547411

示例3

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.randn(5,3),columns=['col1','col2','col3'])
df.apply(lambda x: x.max() - x.min())
print (df)

执行结果如下:

       col1      col2      col3
0 -0.243943 -0.751319 -1.255694
1 -0.335897 -1.012726 -1.392696
2 -0.707799 -0.156924  0.194075
3  1.040613 -0.436822  1.045816
4  0.171972  0.606404 -1.982560

元素函数应用

并不是所有的函数都可以向量化(既不返回另一个数组也不返回任何值的NumPy数组),在DataFrame上的方法applymap()和Series上的map()类似,接受任何Python函数,该python函数要求能够接受单个值并返回单个值。
示例1

import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(5,3),columns=['col1','col2','col3'])

# My custom function
df['col1'].map(lambda x:x*100)
print (df)

执行结果如下:

       col1      col2      col3
0 -0.700311 -0.800143 -1.056121
1  1.129104 -0.339303 -0.956953
2 -0.032603  0.478423  0.100833
3 -0.517502  0.036195 -0.310516
4  0.634135  0.024519 -1.295711

示例2

import pandas as pd
import numpy as np

# My custom function
df = pd.DataFrame(np.random.randn(5,3),columns=['col1','col2','col3'])
df.applymap(lambda x:x*100)
print (df)

执行结果如下:

       col1      col2      col3
0 -1.043203 -1.996480  0.058107
1 -1.298987  0.446834  0.394456
2 -1.585770  1.156161 -1.216770
3 -1.083919 -1.492321  0.966901
4  0.059858 -0.554857  0.464283

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程