不能错过!​跟踪数据的Python技巧

共 2081字,需浏览 5分钟

 ·

2020-03-05 23:22





作者丨读芯术
来源丨读芯术 

了解如何运用Python的某些数据对象,有利于保持井然有序的状态,避免在处理数据科学项目中的大量数据时出错。
 在数据科学项目中,有时想跟踪数据信息,或者希望灵活、快速、轻松地更新数据的全新输入。 为此,小芯整理这篇文章。在本文中,你将学会: ·       在执行loop命令时,跟踪索引·       更新全新的dictionaryitems函·       使用可重用对象记录新信息 我们将从这些问题入手,详细介绍如何使用Python工具解决问题。 希望这种方法能有助于这些工具在代码中应用位置的可视化。 1、一边执行Loop命令,一边跟踪 假设有一张好友姓名列表。既要遍历列表,又要跟踪计数。该怎么做?使用enumerate即可。 

>>>friends = ['Ben', 'Kate', 'Thinh']>>> for i, item in enumerate(friends):>>>     print(f'{i}: {item}')0: Ben1: Kate2: Thinh

或者简单运用dictionarycomprehension 
>>>{i: friends[i] for i in range(len(friends))}{0: 'Ben', 1: 'Kate', 2: 'Thinh'}

2、更新DictionaryItems函数: c11f84f6b62a0821393408007a2e4dfe.webp来源:Pexels
假如正在使用dictionary函数以跟踪首句中的单词及字数。 
sent1 ={'love': 1, 'hate': 3

但进行到第二句时,你想要用新语句更新先前的dictionary函数。 
sent2 = {'love':2, 'flower': 1}

更新的单词包如下: 
{'love':3, 'hate': 3, 'flower': 1}

该怎么做?要是有些工具能助你轻松完成,岂不是很好?如果正好需要这类工具,collections.Counter正中下怀。collections.Counter 这一类允许集合中多个元素的存在 
fromcollections import Counterbag_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允许记录定义一个可重用对象,确保使用正确的归档名称 
fromcollections import namedtupleFriend = namedtuple('Friend' , 'birthday foodcolor introvert')Kate = Friend('Feb', 'cake', 'pink', True)Ben = Friend('Jan','fish', 'red', False)

显示有关凯特的信息: 
>>>KateFriend(birthday='Feb', food='cake', color='pink', introvert=True)

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

使用 nametuples , 用户可以轻松地重用同一对象以实例化新信息。 认真阅读并实践,你将学会运用enumerate、集合推导(set comprehension)、Counter 和namedtuple 来跟踪信息。 ffd90be24ae6855a2377341b705ff864.webp来源:Pexels
希望本文能丰富数据科学工具包,为大家提供更多有用的知识。

75cad973a298e087f07b97fd7f237499.webp近期精彩内容推荐:  

474ad2519cfd1b885c3e66016103e739.webp Spring系列最全 69 道 面试题和详解

474ad2519cfd1b885c3e66016103e739.webp 爬了下知乎神回复,笑死人了~

474ad2519cfd1b885c3e66016103e739.webp 推迟开工这么久,以后还会有假期吗?

474ad2519cfd1b885c3e66016103e739.webp 编程语言性能实测,Go和Python谁更牛?




322d089520a24c896eee2d8fd3c47876.webp

在看点这里ec8dcd17060f4d2c120a7ed3c98d58a1.webp好文分享给更多人↓↓

浏览 25
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报