Python学习笔记:数据的处理

本文介绍了使用Python进行数据处理的方法,包括文件读取、数据格式转换及排序等操作。通过实例展示了如何利用split函数处理文本文件中的数据,并采用sanitize函数统一时间格式。此外,还介绍了Python中的列表推导式和集合数据结构。

上次的学习中有个split函数,照着head first Python上敲一遍代码:

1 >>> with open('james.txt') as jaf:
2     data=jaf.readline()
3     james=data.strip().split(',')

先看一下james.txt里面数据的格式

第三行代码的意思就应该是先去除掉字符串中的空白符,再按照','进行分割,学习到这里感觉Python的语法是很灵活的....

1 >>> print(james)
2 ['2-34', '3:21', '2.34', '2.45', '3.01', '2:01', '2:01', '3:10', '2-22']

数据的排序:

在Python中对数据排序有两种方式:第一种,In-place sorting,原地排序,会更改原来数据的排序;第二种,Copied sorting,复制排序,新建一个副本,对副本排序,即不会更改原来数据的排序

实战一下吧:

1 >>> a=[1,4,6,3,5]
2 >>> a1=sorted(a) # 复制排序
3 >>> a1
4 [1, 3, 4, 5, 6]
1 >>> a.sort() # 原地排序

创建一个函数统一时间格式:

1 >>> def sanitize(time_string):
2     if '-' in time_string:
3         splitter='-'
4     elif ':' in time_string:
5         splitter=':'
6     else:
7         return(time_string)
8     (mins,secs)=time_string.split(splitter)
9     return(mins + '.' + secs)

看看处理后的数据:

1 >>> cl_james=[]
2 >>> for each_t in james:
3         cl_james.append(sanitize(each_t))

再排序输出:

1 >>> print(sorted(cl_james))
2 ['2.01', '2.01', '2.22', '2.34', '2.34', '2.45', '3.01', '3.10', '3.21']

推导列表:一行代码就能完成空列表的创建,迭代,每次迭代的操作,迭代后的赋值给新建的列表...这样的语法可能有点不容易理解吧

1 >>> cl_j=[sanitize(each_t) for each_t in james]
2 >>> cl_j
3 ['2.34', '3.21', '2.34', '2.45', '3.01', '2.01', '2.01', '3.10', '2.22']

感觉有点像R语言中的apply函数

Python的’集合’数据结构

1 >>> distances=set() # 生成空集合并赋给一个变量
1 >>> distances={10.6,10.6,8}
2 >>> distances
3 {8, 10.6}

用大括号进行赋值,Python中的集合是无序切不重复的数据集,若输入了重复的数据,Python会忽略。输出一下

1 >>> print(sorted(set(scl_j))[0:3])
2 ['2.01', '2.22', '2.34']

 

转载于:https://www.cnblogs.com/hahaxzy9500/p/6705101.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值