之前处理csv一直用pandas,今天发现,pandas虽然强大,但是灵活度少了很多,有时候想实现一些简单的功能可能要花很大的代价。大道至简,返璞归真。就像这几天用excel一样,利用简单的规则就可以完成很多任务,不必要动不动就用vba去处理,吃力不讨好。有时候要跳出这样的逻辑陷阱,简单的或者就是最好的。

前两天把公交车的数据用excel处理了一下,最后希望能够把一段路的行驶状况变成一个记录,然后可以用聚类的方法归类,实现站点到站时间预测。但是数据量比较大,如果分成上千个记录用excel做的话,似乎会崩溃很多次,而且存储也显得麻烦,所以还是交给python了。

用透视图、筛选、上色等各种方法,算是把excel的功能挖掘光了。最后得到的数据大概就是这样。

a开头的单元格表示一条记录的开始。接下来就用python处理了,可以利用字典嵌套,一级key就是记录标号,如a1,a2.内部的key就是车站为key,到站间隔和到站速度为value。

# -*- coding: utf-8 -*-
"""
Created on Thu Jan 14 21:41:20 2016@author: Luyixiao
"""
import csv#import the csv moduledef csv2dict(path):reader = csv.reader(open(path,'rb'))csvList = []startNoList=[]stationKey = {}sectList = []li =[]tempKey = {}for line in reader:#change the csv file to a listcsvList.append(line)for i in range(0,len(csvList)):#get the bit of the start recordif csvList[i][0][0]=='a':startNoList.append(i)               for i in range(0,len(csvList)):#tranverse the csv list ,like going through the fileif i in startNoList:if i == 0:#if this is a begining of the first recordkey = csvList[i][0]#mark the key else:#if this is a begining of a recordstationKey[key] = sectList#put the value to the key,the value is a list of the next datasectList = []#empty the sectList,which store the csv lines temporarylykey = csvList[i][0]if not i in startNoList:#this is the content of the recordsectList.append(csvList[i])for k in stationKey:#tranverse the dict which store all the content as a recordli = stationKey[k]#get a key's valuefor i in range(0,len(li)):tempKey[li[i][0]]=li[i][1:3]#create a dict as the value of this keystationKey[k]=tempKeyreturn stationKey

之前花费了好多时间用pandas处理这类数据,往往吃力不讨好。有时候,简单最好,因为灵活性更好,不要强求高大上,强求工具,强求为了使用工具而去使用。最简单的就是最好的,当发现可以实现,但是重复劳动很多的时候再去考虑模块、考虑工具或者更好。

处理数据如此,生活亦是如此。

公交车到站预测1----python处理csv文件相关推荐

  1. python写入csv文件的几种方法

    python写入csv文件的几种方法 最常用的一种方法,利用pandas包 import pandas as pd #任意的多组列表 a = [1,2,3] b = [4,5,6] #字典中的key值 ...

  2. python写入csv文件中文乱码解决方案

    python写入csv文件中文乱码解决方案 参考文章: (1)python写入csv文件中文乱码解决方案 (2)https://www.cnblogs.com/vsivn/p/6115537.html ...

  3. python导入csv文件-Python从CSV文件导入数据和生成简单图表

    原标题:Python从CSV文件导入数据和生成简单图表 我们已经完成Python的基础环境搭建工作,现在我们尝试导入CSV数据 我们准备一个csv测试数据,文件名是csv-test-data.csv数 ...

  4. python创建csv文件并写入-Python 读写 CSV

    Python 读写 CSV 文件最简单的方法是使用自带的 csv 库,复杂点的可以使用 pandas.今天老唐简单记录一下使用自带的 csv 库怎么进行 Python 的文件读写操作,主要包括新建文件 ...

  5. python导入csv文件-Python读写文件(csv、txt、excel)

    大家做在数据处理的时候,肯定难免会与文件交互,那么对于指定的文件类型,我们如何操作呢? 1.python读写csv文件 import csv #python2可以用file替代open with op ...

  6. python读取csv文件的方法-python读写csv文件的方法

    1.爬取豆瓣top250书籍 import requests import json import csv from bs4 import BeautifulSoup books = [] def b ...

  7. python关闭csv文件_使用Python编辑csv文件时跳过标题

    使用Python编辑csv文件时跳过标题 我使用下面引用的代码使用Python编辑csv.代码中调用的函数形式代码的上半部分. 问题:我希望下面引用的代码从第2行开始编辑csv,我希望它排除包含标题的 ...

  8. python导入csv数据例子-使用python读取csv文件快速插入数据库的实例

    如下所示: # -*- coding:utf-8 -*- # auth:ckf # date:20170703 import pandas as pd import cStringIO import ...

  9. Python 读取 csv 文件忽略引号中字段的逗号

    如题,使用 Python 处理 csv 文件,之前是这么处理的: str = '飞机,火车,汽车' rel = str.split(',') > ['飞机','火车','汽车'] 一般情况下是正 ...

  10. python csv读取数据 去掉标题-Python读csv文件去掉一列后再写入新的文件实例

    用了两种方式解决该问题,都是网上现有的解决方案. 场景说明: 有一个数据文件,以文本方式保存,现在有三列user_id,plan_id,mobile_id.目标是得到新文件只有mobile_id,pl ...

最新文章

  1. 2018考研英语:10篇必背的真题文章
  2. Reactor中的Thread和Scheduler
  3. C语言计算分段函数pta,PTA浙大版《C语言程序设计(第3版)》题目集 练习2-11 计算分段函数[2] (10分)...
  4. mysql定义shell变量_shell 变量的定义,赋值,运算
  5. StringBuilder类的对象 c#
  6. Python开发【第二篇】:Python基本数据类型
  7. 01Python基础_08模块和包
  8. 自从在 IDEA 中用了热部署神器 JRebel,开发效率提升了 10 倍!
  9. 细节模拟题:素数回文
  10. 黑马程序员-银行业务调度系统
  11. 从哪里寻找游戏工具集(Game dev toolset)开发的资料?
  12. 如何重置网络?如何激活产品?
  13. Unity 键盘控制摄像机镜头旋转,并限制旋转角度
  14. BBU与RRU、RRH
  15. 计算机专业英语常用词汇整理
  16. 深入学习理解java虚拟机--1.win10 下构建64位 openJDK8
  17. 常见文件头 文件幻数
  18. win10解决桌面图标变白
  19. 舒老师AK的hu测 T2. LX还在迷路(线段树+等差数列)
  20. android广告拦截原理,WebView 广告拦截浅析

热门文章

  1. python 打开dat格式_p4vasp分析态密度输出pdos数据后用Python分列
  2. EV: 关闭屏幕显示的联想笔记本NumLock键打开标志
  3. 用Django半天时间开发一个员工管理系统实例教程分享
  4. C# webbrowser 使用Tips
  5. Outlook 2019 中文邮件乱码的问题
  6. Mixed Strategy Game
  7. Android 笔记 沉浸式状态栏设置及效果说明
  8. 利用继承,实现圆柱体体积的计算
  9. 有锁机保基带升级完美越狱工具Sn0wbreeze使用教程
  10. 全新【Photoshop 2022 for mac】中文版发布下载 支持M1 M1X M2处理器 详细安装教程