【Python学习】No.5 常用函数

1. apply,applymap和map的应用

总结:

>>> df = pd.DataFrame(np.random.randint(0,10,(4, 3)), columns=list('bde'), index=range(4))
>>> df
 b  d  e
 2  0  5
 8  9  1
 3  6  6
 4  8  4

apply

用在dataframe上,用于对row或者column进行计算;

>>> f = lambda x: x.max() - x.min()
>>> df.apply(f)
b    6
d    9
e    5
dtype: int64 
>>> df.apply(f,axis=1)  # 作用在一行上
   5
   8
   3
   4
dtype: int64
>>> df.apply(f,axis=0)  # 作用在一列上,axis=0可省略
b    6
d    9
e    5
dtype: int64

applymap

用于dataframe上,是元素级别的操作;

>>> f2 = lambda x: x+1 if x%2==0 else x
>>> df.applymap(f2)
   b  d  e
 3  1  5
 9  9  1
 3  7  7
 5  9  5

map

(其实是python自带的)用于series上,是元素级别的操作。

>>> data = {'id':range(5),'value':list("abcab")}
>>> frame = pd.DataFrame(data)
>>> frame
   id value
  0     a
  1     b
  2     c
  3     a
  4     b

>>> def testf(x, str):
...     return x,str

>>> frame["id"].apply(testf, args=("ok",))
   (0, ok)
   (1, ok)
   (2, ok)
   (3, ok)
   (4, ok)
Name: id, dtype: object
# 注意这里args只能传入(元组),不能是"ok"或("ok")

2. 排序函数:sort_values

## 参数    
DataFrame.sort_values(by, axis=0, ascending=True, inplace=False, kind='quicksort', na_position='last')  
#### 参数说明    
axis:{0 or ‘index’, 1 or ‘columns’}, default 0,默认按照索引排序,即纵向排序,如果为1,则是横向排序    
by:str or list of str;如果axis=0,那么by="列名";如果axis=1,那么by="行名";  
ascending:布尔型,True则升序,可以是[True,False],即第一字段升序,第二个降序  
inplace:布尔型,是否用排序后的数据框替换现有的数据框  
kind:排序方法,{‘quicksort’, ‘mergesort’, ‘heapsort’}, default ‘quicksort’。似乎不用太关心  
na_position : {‘first’, ‘last’}, default ‘last’,默认缺失值排在最后面  

你可能感兴趣的:(【Python学习】No.5 常用函数)