根据一个规律文本提取出数据框
2016-08-02 22:57
113 查看
内容:今天主要用python实现一个csv格式的规则文本转化为DataFrame的过程,实际Pandas.read_csv(file)可以直接生成;
win.csv格式:
难点1:怎么将截片,选择正确的截片方式,让截得的结果能够跟read_csv相同;
难点2:可维护性,通过columes,names只要是矩形,都可以动态显示。
下面给出结果
>>> runfile('C:/Users/白于空/Documents/Python Scripts/setDF.py', wdir='C:/Users/白于空/Documents/Python Scripts')
访客数 占比 浏览量 占比\n
淘宝搜索 2302.0 0.6202 3071.0 0.6255
天猫搜索 488.0 0.1315 640.0 0.1303
直接访问 232.0 0.0625 302.0 0.0615
已买到商品 154.0 0.0415 208.0 0.0424
淘宝客 141.0 0.0380 188.0 0.0383
淘宝站内其他 116.0 0.0313 142.0 0.0289
购物车 106.0 0.0286 151.0 0.0308
宝贝收藏 64.0 0.0172 82.0 0.0167
直通车 51.0 0.0137 58.0 0.0118
淘宝其他店铺 12.0 0.0032 13.0 0.0026
>>>
win.csv格式:
PC端来源 | Dule | |||
来源名称 | 访客数 | 占比 | 浏览量 | 占比 |
淘宝搜索 | 2302 | 0.6202 | 3071 | 0.6255 |
天猫搜索 | 488 | 0.1315 | 640 | 0.1303 |
直接访问 | 232 | 0.0625 | 302 | 0.0615 |
已买到商品 | 154 | 0.0415 | 208 | 0.0424 |
淘宝客 | 141 | 0.038 | 188 | 0.0383 |
淘宝站内其他 | 116 | 0.0313 | 142 | 0.0289 |
购物车 | 106 | 0.0286 | 151 | 0.0308 |
宝贝收藏 | 64 | 0.0172 | 82 | 0.0167 |
直通车 | 51 | 0.0137 | 58 | 0.0118 |
淘宝其他店铺 | 12 | 0.0032 | 13 | 0.0026 |
难点2:可维护性,通过columes,names只要是矩形,都可以动态显示。
import pandas as pd import numpy as np def strToD(x): str1 = x.split('\n')[0] return str1 def setDF(file): strings = open(file,'r+').readlines() open(file,'r+').close() names = []; data = [] columes = []; for string1 in strings[1:len(strings)]: hang = string1.split(',') for element in np.arange(0,len(hang)): hang[element] = strToD(hang[element]) if(string1 == strings[1]): columes = string1.split(',')[1:len(string1)] else: data.extend(hang[1:len(hang)]) names.append(hang[0]) for d in np.arange(0,len(data)): data[d] = float(data[d]) dd = np.array(data) dd.shape = len(names),len(columes) df = pd.DataFrame(dd,names,columes) return df print (setDF('C:\\Users\\白于空\\Desktop\\0802\\win.csv'));
下面给出结果
>>> runfile('C:/Users/白于空/Documents/Python Scripts/setDF.py', wdir='C:/Users/白于空/Documents/Python Scripts')
访客数 占比 浏览量 占比\n
淘宝搜索 2302.0 0.6202 3071.0 0.6255
天猫搜索 488.0 0.1315 640.0 0.1303
直接访问 232.0 0.0625 302.0 0.0615
已买到商品 154.0 0.0415 208.0 0.0424
淘宝客 141.0 0.0380 188.0 0.0383
淘宝站内其他 116.0 0.0313 142.0 0.0289
购物车 106.0 0.0286 151.0 0.0308
宝贝收藏 64.0 0.0172 82.0 0.0167
直通车 51.0 0.0137 58.0 0.0118
淘宝其他店铺 12.0 0.0032 13.0 0.0026
>>>
相关文章推荐
- 根据htmlparser写的一个提取页面纯文本的C#程序
- ASP.NET基础教程-Web 自定义控件的使用-根据属性值从数据库中提取数据并在页面上自动生成一个表格
- SQL根据一个表的数据修改另一表数据的语句
- 一个使用Neko提取HTML纯文本内容的程序例子
- mysql从一个表提取数据更新另外一个表(Cross Table Update with MySQL)
- 一个关于SqlServer 中根据概率获取数据的sql 写法
- 如何将一个文本文件中的数据加载到oracle数据库中
- 根据一个数据表生成无限级的XML格式的菜单
- 一个jquery小插件, 实现限制文本框中输入的数据类型及长度
- 在asp.net中 把一个文本文档的中的数据一行一行添加到textbox中
- 此文本文件包含的数据无法放在一个工作表中
- 一个可根据当前文本调整自身长度的CStatic派生类
- 根据一个表的数据生成插入脚本
- BI建设实战–使用SSIS根据数据仓库数据有条件提取业务系统数据
- 在asp.net中 把一个文本文档的中的数据一行一行添加到textbox中
- sql根据一个表的数据生成插入脚本
- 规则文本数据文件根据关键字段进行排序的实现
- 提取一个单元格中的文本(非数字)-自定义函数
- SQL Server使用Bulk Insert把一个文本导入到数据库
- 根据excel的文件的路径提取其中表的数据到DataSet中