第三天我们简单介绍了处理表格的pandas套件
接下来就要开始对资料进行处理了
我们都知道电脑比起人类来说,最大的优势就是可以快速的执行相同的操作
因此学会如何对大笔大笔的资料进行重复的操作就是非常关键的了
对程序有过一些经验初学资料的朋友们可能会想到
「啊不就回圈吗,这有什麽特别的吗?」
基本上这样的想法,对 但也不完全正确
python作为一门没有那麽底层的语言
相对上它的执行效率是远不如那些C/C++之类的
其中日常影响最最大的部分就是我们亲爱的for
回圈啦
因此,如果你真的要对资料进行操作的时候
一定要尽量的避免把所有的操作都用for来完成
以下例子我们用经典的鸢尾花(iris)资料集为例
import pandas as pd
df = pd.read_csv("iris.csv")
为了要随便有个可以做的事情
我们先以将同一笔资料的class label给print出来
# 印出类别
def foo(row):
print("The class is %s" % row["class"])
# 使用for回圈遍历
for index,row in df.iterrows():
foo(row)
如果你真的坚持要用回圈的方式来处理的话
可以对你的DataFrame呼叫.iterrows()
,并且用index
,row
两个变数去接住它来进行遍历
# 使用apply遍历
df.apply(foo, axis = 1)
这边我们稍微做一下解释
当我们对一个DataFrame进行apply
操作的时候会需要给它一个方向axis
而处理的过程则可以想像成每次被遍历的对象作为参数,被後面接着的foo()
函数进行处理
这边为了要让结果明显一点
我将资料进行了重复采样到50000笔之後分别用两种方法进行操作
得出的结果如下
这边要注意这还只是最简单的一个print而已
如果处理的内容更加复杂的时候,这差距还会更加显着的拉大
因此,珍爱生命请善用apply
前言 在前一篇文章中,我们了解了如何使用 getStaticProps 让 Next.js 可以在打...
在做新产品开发时,对於用户需求收集,寻找产品切入点,我们常有一个典型的错误假设,那就是认为用户最知...
最近看了地狱厨房 觉得好看!!! 里面一堆肉看起来超好吃的XD 今天终於进入汇入档案的部份 连结:h...
Netlify CMS 完全就是为了 JAMstack 而设计的 CMS 系统 前面分享了直接使用第...
JavaScript feature 随着越来越深入JavaScript,现在所考察和学习到的co...