Python常用函数与技巧总结(一)

来源:互联网 发布:linux的保存命令 编辑:程序博客网 时间:2024/06/05 06:08

一、map(function,iterable,…..)

作用:将iterable中的每一个元素应用function方法处理,将结果作为list返回
如:
def add100(x):
return x+100
hh=[11,22,33]
a=map(add100,hh)
print(list(a))

如:

def abc(a,b,c):    return a*10000+b*100+c list1=[11,22,33]list2=[44,55,66]list3=[77,88,99]b=map(abc,list1,list2,list3)print(list(b))

二、lambda表达式
作用:一个匿名函数表达式,函数体比def简单得多
比如:

f=lambda a,b,c:a+b+cprint(f(1,2,3))

又比如求n的阶乘:

from functools import reducen=5print(reduce(lambda x,y:x*y,range(1,n+1)))

三、reduce(function,list)
使用这个函数要先从模块中导入
from functools import reduce
作用:将list从头开始取2个元素作出function变化,结果再与第三个元素再做function变换直到头为止

from functools import reducedef f(x,y):    return x+y a=reduce(f,[1,3,5,7,9])print(a)

这里写图片描述

一些结构的解释与联系:

这里写图片描述

pd.Series中index是列表索引
pd.Series(index=[‘a’,’b’,’c’,’d’])则
形如:
a x
b x
c x
d x
pd.DataFrame中columns是索引头,
pd.DataFrame(columns=[‘abcd’])
形如:
- a b c d
0 x x x x
1 x x x x
2 x x x x

list数据的类型可以任意可以不同,list存的是地址所以占用内存较大些,np.array相当于数组或者叫矩阵,存放数据的类型需要一致

数据结构类型相互转化图:

这里写图片描述

下面演示如何将散乱的事务型数据转换成0-1购买数据
text.xls
这里写图片描述

输出:
这里写图片描述

示例代码

import pandas as pd data=pd.read_excel("text.xls",header=None) #去掉头部,因为Excel中无表头,第一行起就是有用数据change=lambda x:pd.Series(1,index=x[pd.notnull(x)])#lambda表达式,被下面的map调用了,并将标签取出,将有值的记为1result=map(change,np.array(data))#result是将数据经过change变换final=pd.DataFrame(list(result)).fillna(0)print(final)
原创粉丝点击