python數據統計,總數,平均值等

     通常咱們進行數據統計的時候要進行數據摸查,多是摸查總體的分佈狀況啊。平均值,標準差,總數,各分段的人數啊。這時候用excel或者數據庫統計都不方便。python

我要統計的一個文件,太大了,還得分紅15個文件,結果導一個進mysql都要導好久。再mysql進行編程,執行更久,很費事。mysql

可是用python直接統計就很方便啦。sql

 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...)ide

相關文章
相關標籤/搜索