您的位置:首页 > 其它

根据一个规律文本提取出数据框

2016-08-02 22:57 113 查看
内容:今天主要用python实现一个csv格式的规则文本转化为DataFrame的过程,实际Pandas.read_csv(file)可以直接生成;

win.csv格式:

PC端来源 Dule  
来源名称访客数占比浏览量占比
淘宝搜索23020.620230710.6255
天猫搜索4880.13156400.1303
直接访问2320.06253020.0615
已买到商品1540.04152080.0424
淘宝客1410.0381880.0383
淘宝站内其他1160.03131420.0289
购物车1060.02861510.0308
宝贝收藏640.0172820.0167
直通车510.0137580.0118
淘宝其他店铺120.0032130.0026
难点1:怎么将截片,选择正确的截片方式,让截得的结果能够跟read_csv相同;

难点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

>>> 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: