lqs-zsjky

python数据统计,总数,平均值等

     一般我们进行数据统计的时候要进行数据摸查,可能是摸查整体的分布情况啊。平均值,标准差,总数,各分段的人数啊。这时候用excel或者数据库统计都不方便。

我要统计的一个文件,太大了,还得分成15个文件,结果导一个进mysql都要导很久。再mysql进行编程,执行更久,很费事。

但是用python直接统计就很方便啦。

 1 @author: pc
 2 """
 3 import matplotlib as mpb
 4 import pandas as  pd
 5 import pylab as pl
 6 import numpy as np
 7 #读取文件
 8 #mnames=[\' product_type\',\'phone_num\',\' flow_total\',\' flow_used\', \'phone_total\',\' phone_used\' ]
 9 mnames=[\'time\']
10 product=pd.read_table(\'C:\\Users\\pc\\Desktop\\time.txt\',encoding=\'utf-8\',sep=\'|\',header=None,names=mnames)
11 # print(product[\'product_subtotal\'])
12 #选取产品小计列
13 time=product[\'time\']
14 #按分位数划分区间
15 cats=pd.qcut(time,[0,0.2,0.4,0.6,0.8,1.0])
16 # print(cats)
17 # print(pd.value_counts(cats))
18 # print(product_subtotal)
19 count=time.value_counts()
20 #写入csv文件
21 count.to_csv(\'C:\\Users\\pc\\Desktop\\counts9.csv\')
22 #输出描述性统计结果
23 print(time.describe())
24 #根据电话号码查询某行的值
25 #num=product[\'phone_num\']
26 #print(product[product[\'phone_num\']==18948482538])
27 bins=np.arange(0,5000,100)
28 pl.hist(time, bins)
View Code

但是这是适合一个一个文件算,如果存在多个文件,我们可以使用python合并后计算。

#-*-coding:utf-8-*-

import codecs
import os
filepath = "E:\\workspace\\test\\source\\usebill\\" #把要合并的文件放入一个文件夹
flist = os.listdir(filepath)
fileWrite =codecs.open("../source/alluse.txt",\'w+\',\'utf-8\')#编码方便
for file in flist:
    child = os.path.join(\'%s%s\'%(filepath,file))#连接路径
    print(child)
    fh = codecs.open(child,\'r\',\'utf-8\')
    for line in fh.readlines():
        fileWrite.write(line)
fileWrite.close()

import pandas as pd
product=pd.read_table(\'..\\source\\alluse.txt\',encoding=\'utf-8\',sep=\'|\',header=None)
print(product[5][:10])
print(product[5].describe())
View Code

再说下编码一个小问题吧。多数的挖掘在unicode文件进行,f=open(\'XXXXX\', \'r\')
content=f.read().decode(\'utf-8\')这是解码成unicode

参考  文件(gbk, utf-8...)   decode 成为   unicode 文件  编码  encode- 成为  文件(gbk, utf-8...)

 

发表于 2016-12-20 17:29  因特不耐特  阅读(1632)  评论(0编辑  收藏  举报
 

分类:

技术点:

相关文章:

  • 2021-06-03
  • 2021-09-30
  • 2022-12-23
  • 2021-11-15
  • 2022-12-23
  • 2022-12-23
  • 2021-10-26
  • 2021-12-13
猜你喜欢
  • 2022-12-23
  • 2021-11-30
  • 2021-07-10
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案