Pandas是数据操作、分析和可视化的重要工具,有效地使用Pandas可能具有挑战性,从使用向量化操作到利用内置函数,这些最佳实践可以帮助数据科学家使用Pandas快速准确地分析和可视化数据。
图片
在本文中,我们将重点介绍在DataFrame上经常执行的两个最常见的任务,特别是在数据科学项目的数据操作阶段。这两项任务是有效地选择特定的和随机的行和列,以及使用replace()函数使用列表和字典替换一个或多个值。
在本文中,我们将使用下面的数据集:
扑克牌游戏数据集
婴儿名字数据集
我们使用的第一个数据集是扑克牌游戏数据集,如下所示。
poker_data = pd.read_csv(‘poker_hand.csv’)
poker_data.head()
图片
在每个回合中,每个玩家手里有五张牌,每一张牌都有花色:红心、方块、梅花或黑桃,以及它的数字,范围从1到13。该数据集由一个人可以拥有的五张卡片的每一种可能组合组成。
Sn:第n张牌的符号,其中:1(红心),2(方块),3(梅花),4(黑桃)
Rn:第n张牌的排名,其中:1(王牌),2-10,11(J),12(Q),13(K)
第二个数据集是流行的婴儿名字数据集,其中包括2011年至2016年间最流行的新生儿名字:
names = pd.read_csv(‘Popular_Baby_Names.csv’)
names.head()
图片
该数据集还包括按年份、性别和种族划分的美国最受欢迎的名字。例如,2011年,Chloe 这个名字在所有亚裔和太平洋岛民女性新生儿中排名第二。
下面我们开始进入正题
为什么需要高效的代码?
高效代码是指执行速度更快、计算容量更低的代码。在本文中,我们将使用time()函数来测量计算时间,我们通过在执行前和执行后获取时间,然后计算其差值获得代码的执行时间。下面是一个简单的例子:
import time
record time before execution
start_time = time.time()
execute operation
result = 5 + 2
record time after execution
end_time = time.time()
print(“Result calculated in {} sec”.format(end_time - start_time))
让我们看一个提高代码运行时间并降低计算时间复杂度的示例:我们将计算每个数字的平方,从0到100万。首先,我们将使用列表推导式来执行此操作,然后使用for循环重复相同的过程。
首先使用列表推导式:
#using List comprehension
list_comp_start_time = time.time()
result