高级函数——map()和reduce()
本文作者:张欣怡,中南财经政法大学统计与数学学院
本文编辑:周一鸣
技术总编:王玉婷
Stata and Python 数据分析
爬虫俱乐部Stata基础课程、Stata进阶课程和Python课程可在小鹅通平台查看,欢迎大家多多支持订阅!如需了解详情,可以通过课程链接(https://appbqiqpzi66527.h5.xiaoeknow.com/homepage/10)或课程二维码进行访问哦~map(function, *iterables) -> value
其中,function为可调用的函数,*iterables为输入的一个或多个可迭代序列,可以是列表、集合、元组、字典或字符串 。map()将指定函数映射至序列中的所有元素,并生成一个函数返回值的新序列,如下图所示:
map(str.lower,['appLE','pEach','Banana'])
list(map(str.lower,['appLE','pEach','BanaNa']))
strings=['stata','and','python']
lengths=list(map(len,strings))
lengths
strings=['stata','and','python']
lengths=[len(x) for x in strings]
lengths
def multiply_numbers(x,y,z):
return x*y*z
list(map(multiply_numbers,{1,2,3,4,5},{2,3,4,5},{3,4,5}))
list(map(lambda x, y:(x+y,x*y),{1,2,3,4,5},{2,3,4,5}))
reduce(function, sequence[, initial]) -> value
其中,function为可调用的函数,sequence为输入的可迭代序列,initial为可选的初始参数。reduce()可以看作是序列中元素的合并,通过指定函数处理序列中的第一、二个元素,得到的结果与第三个元素配合处理,逐项累积直至得到最终结果为止,具体的步骤如下图所示:
from functools import reduce
def multiply_numbers(x,y):
return x*y
reduce(multiply_numbers,range(1,6))
输出结果为:
from functools import reduce
seq=['p','y','t','h','o','n']
print(reduce(lambda x, y: x+y, seq))
输出结果为:
seq=['p','y','t','h','o','n']
for i in range(len(seq)):
if len(seq)!=1:
outcome = seq[0]+seq[1]
seq.remove(seq[0])
seq[0] = outcome
else:
break
print(seq)
输出结果为:
def func(x, y):
return x * 10 + y
dictionary={'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5}
def numbers(i):
return dictionary[i]
from functools import reduce
reduce(func, map(numbers, '3145'))
输出结果为:
重磅福利!为了更好地服务各位同学的研究,爬虫俱乐部将在小鹅通平台上持续提供金融研究所需要的各类指标,包括上市公司十大股东、股价崩盘、投资效率、融资约束、企业避税、分析师跟踪、净资产收益率、资产回报率、国际四大审计、托宾Q值、第一大股东持股比例、账面市值比、沪深A股上市公司研究常用控制变量等一系列深加工数据,基于各交易所信息披露的数据利用Stata在实现数据实时更新的同时还将不断上线更多的数据指标。我们以最前沿的数据处理技术、最好的服务质量、最大的诚意望能助力大家的研究工作!相关数据链接,请大家访问:(https://appbqiqpzi66527.h5.xiaoeknow.com/homepage/10)或扫描二维码:
最后,我们为大家揭秘雪球网(https://xueqiu.com/)最新所展示的沪深证券和港股关注人数增长Top10。
对我们的推文累计打赏超过1000元,我们即可给您开具发票,发票类别为“咨询费”。用心做事,不负您的支持!
往期推文推荐
Stata绘制条形图的进阶用法
快来看看武汉的房价是不是又双叒叕涨了!Python 常见内置函数(二)Stata绘制饼形图的进阶用法
Python标准库--logging模块盲区探索——Stata的读写极限Camelot提取PDF表格:一页多表、多页一表Stata绘图系列——条形图绘制
Python常见内置函数(一)Stata绘图系列——饼形图绘制【爬虫实战】深交所服务业年报数据“挂羊头卖狗肉”?
Python与excel交互--xlsxwriter模块cnmapsearch——离公司最近的快餐店在哪
Python中的异常处理 Python交互式数据可视化——酷炫的Altair库 hk系列命令(3)—— hktrade hk系列命令(2)—— hkar关于我们
微信公众号“Stata and Python数据分析”分享实用的Stata、Python等软件的数据处理知识,欢迎转载、打赏。我们是由李春涛教授领导下的研究生及本科生组成的大数据处理和分析团队。
武汉字符串数据科技有限公司一直为广大用户提供数据采集和分析的服务工作,如果您有这方面的需求,请发邮件到statatraining@163.com,或者直接联系我们的数据中台总工程司海涛先生,电话:18203668525,wechat: super4ht。海涛先生曾长期在香港大学从事研究工作,现为知名985大学的博士生,爬虫俱乐部网络爬虫技术和正则表达式的课程负责人。
此外,欢迎大家踊跃投稿,介绍一些关于Stata和Python的数据处理和分析技巧。
投稿邮箱:statatraining@163.com投稿要求:1)必须原创,禁止抄袭;2)必须准确,详细,有例子,有截图;注意事项:1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿+推文名称”。3)应广大读者要求,现开通有偿问答服务,如果大家遇到有关数据处理、分析等问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。