一、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+c
print(f(1,2,3))
又比如求n的阶乘:
from functools import reduce
n=5
print(reduce(lambda x,y:x*y,range(1,n+1)))
三、reduce(function,list)
使用这个函数要先从模块中导入
from functools import reduce
作用:将list从头开始取2个元素作出function变化,结果再与第三个元素再做function变换直到头为止
from functools import reduce
def 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调用了,并将标签取出,将有值的记为1
result=map(change,np.array(data))
#result是将数据经过change变换
final=pd.DataFrame(list(result)).fillna(0)
print(final)