python处理用户签到数据(一)(2014.5.14)
来源:互联网 发布:log4j 输出json格式 编辑:程序博客网 时间:2024/05/22 04:30
读文件 的操作:f=open("checkin\\data_test.csv",'r')
newline=f1.readline()
if newline='':
break;
arr=newline.split(',')
毕设中需要 把foursquare签到的时间进行处理,因为用北京时间抓取的纽约签到,简单地说就是将所有的签到时间减去13小时。签到中的时间格式 是这样13/05/2014 21:20:10
datetime模块比 time模块要好一些 ,似乎time功能具有的功能datetime都具有。
贴一些处理语句吧
将时间格式化d= datetime.datetime.strptime("13/05/2014 21:20:10","%d/%m/%Y %H:%M:%S")
时间差的计算d=d-datetime.timedelta(hours=24) 此处为减去24小时
在文件中插入列的时候需要将元组转换为列表进行处理。
list 和array可以通过初试化进行转换,将tuple转变为list之后即可以进行插入这样的操作。列表和数组的转换
alist=list(array)
array=tuple(alist)
str='...'.join(arr),join是和split对应的操作,表达式将元组中的值用...连接,并赋值给str
需要采用键值对将相同的用户签到记录放到一起,并进行时间上的排序,根据字典值进行排序。用字典建立关联关系。
python 3.3的字典遍历语句和以前的版本有所不同
for k,v in dict1.items():
print(k,v)
排序:
只有列表可以排序,元组不可以排序
示例语句,对字典dict3按照值排序
sorted_x = sorted(dict3.items(), key=lambda dict3 : dict3[1])
需要自定义排序方法 :按照记录中的时间先后进行排序
事实上是多属性排序,先按照用户编号,再按照用户的签到时间,两个属性进行排序
对python的语法基本熟悉之后,对我的数据处理可以按照步骤进行,每一步骤产生中间结果:
1.对签到记录按照用户进行排序,即将相同用户的签到放在一起
2.对同一用户进行时间先后排序(降序排列,将较近的签到放在前面)
3.筛选掉用户签到记录小于10的用户
4.时间进行处理,即将给定的时间处理为框架时间
5.进行测试集训练集的划分,取用户最近的5个签到为测试集其余为训练集
可以将1,2合并为处理一个列表函数,其中自定义比较函数。
发现python3.3居然把sort中的cmp去掉了,还是用2.7吧
居然不向下兼容……
进行1,2两步处理(在2.7环境下)
最终直接使用的是列表自带的sort函数。
0 0
- python处理用户签到数据(一)(2014.5.14)
- Python微博地点签到大数据实战(一)微博API的使用
- python 自动化处理网页 (urllib , beatuifulsoup ,re)打卡签到
- Python微博地点签到大数据实战(三)大数据利器:爬虫
- 处理数据(一)
- 从签到脚本到自动化(一)
- Python微博地点签到大数据实战(二)POI与坐标
- Python微博地点签到大数据实战(二)POI与坐标
- python自然语言处理(一)
- python处理表格(一)
- 海量处理用户日志(一)
- Python数据分析(一)
- python 数据可视化(一)
- 签到程序(修改)
- HDU5978(签到题)
- python 科学计算学习一:numpy快速处理数据(1)
- python 科学计算学习一:numpy快速处理数据(2)
- python 科学计算学习一:numpy快速处理数据(3)
- arm-linux-gdb(宿主机)+gdbserver(目标机)远程调试
- c,c++易错点之指针与引用
- 用栈实现进制转换
- matlab读取csv文件存在字符串的问题(2014.5.8)
- 斯蒂芬卡死款到即发
- python处理用户签到数据(一)(2014.5.14)
- 黑马程序员-C语言函数的基本定义和注意事项
- anxts
- ZBar 从相册读取二维码
- 整数转化成字符串; 字符串转换为整数
- Quicksum
- 黑马程序员_java网络编程
- Android应用程序的sharedUserId,process与签名总结
- 计算机中断