4.1 初见数据处理

Cooking time: 20 mins active / 30 mins passive

Tasks For Instructors: 讲师讲解和演示该节内容,若相关内容认为需要教练辅助,请讲师灵活应变。

我们收集的数据,往往不符合我们需要的格式,带有不同的噪音,看不出本质…… 需要对数据进行转换加工才能获得有用的信息。

爬虫获取的是原料,要经过数据处理的加工,最后才能获得产品。

Python 字符串

很多人会说最重要的数据结构是数组,但最常用的数据结构却是字符串。数据处理中使用最多的操作也是字符串操作。

按分隔符拆分字符串(split)

"a b c d".split(" ") # ["a", "b", "c", "d"]

用分隔符合并字符串(join)

" ".join(["a", "b", "c", "d"]) # "a b c d"

取子字符串

"this is good"[5:]

找到子字符串的位置

"foo bar baz".index('bar')
"foo".index("bar") # ValueError

子字符串判断:

"sub" in "string with sub"
str.startswith("prefix")
str.endswith("suffix")

类型转换

前面 Python 基础提到,数据有不同的类型,有时它的类型不是我们想要的。

例如从网页中提取出来的内容是字符串:

而我们想把它表示的数值加起来。这样做是不行的:

注意对字符串做的 + 运算只是把它们串连起来。

为了进行数值计算,需要先把它们转换成数值类型。试试下面的代码:

转换成数值类型后,就能进行数值计算了:

容器类型的处理

listdictset 等数据类型的处理。

处理一:排序

上面的排序使用了 lambda 函数。lambda 语法定义了一个匿名的函数,写法为

表达式的值会作为函数的返回值。

处理二:过滤 - 去掉不需要的数据

处理三:重塑 - 通过循环生成新的集合数据

数据统计

假设我们有一个 list,赋予了变量 lst,里面包含若干项数据,我们要计算它的

最大值:

最小值

平均值

注:如果 sum 是整数相加得来,那它还是个整数对象(int),为了除法可以得到小数结果,需要先转换成浮点数。

Last updated

Was this helpful?