百科狗-知识改变命运!
--

跟踪数据的Python技巧

梵高1年前 (2023-11-21)阅读数 29#技术干货
文章标签信息

了解如何运用Python的某些数据对象,有利于保持井然有序的状态,避免在处理数据科学项目中的大量数据时出错。

在数据科学项目中,有时想跟踪数据信息,或者希望灵活、快速、轻松地更新数据的全新输入。

为此,小编整理这篇文章。在本文中,你将学会:

在执行loop命令时,跟踪索引

更新全新的dictionaryitems函

使用可重用对象记录新信息

我们将从这些问题入手,详细介绍如何使用Python工具解决问题。

希望这种方法能有助于这些工具在代码中应用位置的可视化。

1、一边执行Loop命令,一边跟踪假设有一张好友姓名列表。既要遍历列表,又要跟踪计数。该怎么做?使用enumerate即可。

>>>friends=['Ben','Kate','Thinh']

>>>fori,iteminenumerate(friends):

>>>print(f'{i}:{item}')

0:Ben

1:Kate

2:Thinh

或者简单运用dictionarycomprehension

>>>{i:friends[i]foriinrange(len(friends))}

{0:'Ben',1:'Kate',2:'Thinh'}

2.更新DictionaryItems函数

假如正在使用dictionary函数以跟踪首句中的单词及字数。

sent1={'love':1,'hate':3

但进行到第二句时,你想要用新语句更新先前的dictionary函数。

sent2={'love':2,'flower':1}

更新的单词包如下:

{'love':3,'hate':3,'flower':1}

该怎么做?要是有些工具能助你轻松完成,岂不是很好?如果正好需要这类工具,collections.Counter正中下怀。collections.Counter这一类允许集合中多个元素的存在

fromcollectionsimportCounter

bag_words=Counter()sent1={'love':1,'hate':3}bag_words.update(sent1)sent2={'love':2,'flower':1}bag_words.update(sent2)bag_words

结果:

Counter({'love':3,'hate':3,'flower':1})

太好了!现在,当你从其他语句中收集到更多信息时,便可以很容易地更新单词包。可以运用len找出语句中有多少唯一单词,

>>>len(bag_words)

3

或者,可以运用sum计算语句中的单词总量,

>>>sum(bag_words.values())

7

3.运用Namedtuple定义可重用对象

想跟踪有关朋友的信息列表,为他们的生日做准备。由于暂时无可用信息,因此首先需要创建一个占位符,以便之后在其中输入信息。如果要记录凯特(Kate)的生日、最喜欢的食物、肤色以及是否内向,可以这样做:

>>>Kate=Friend('Feb','cake','pink',True)

此外,如果记不住她的生日,可以调用

>>>Kate.birthday

'Feb'

Python中的类对象可以实例化凯特,但是创建一个Friend类来保存简单信息,很耗费时间。在此情况下,namedtuple是个不错的选择。namedtuple允许记录定义一个可重用对象,确保使用正确的归档名称

fromcollectionsimportnamedtuplenamedtupleFriend=namedtuple('Friend','birthdayfoodcolorintrovert')Kate=Friend('Feb','cake','pink',True)Ben=Friend('Jan','fish','red',False)

跟踪数据的Python技巧

显示有关凯特的信息:

>>>Kate

Friend(birthday='Feb',food='cake',color='pink',introvert=True)

如果想知道本(Ben)是内向还是外向,可以调用

>>>Ben.introvert

False

使用nametuples,用户可以轻松地重用同一对象以实例化新信息。认真阅读并实践,你将学会运用enumerate、集合推导(setcomprehension)、Counter和namedtuple来跟踪信息。

以上内容为大家介绍了跟踪数据的Python技巧,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注IT培训机构:开发教育。http://www.baikegou.com/

鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com

免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)

图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)