SoFunction
Updated on 2025-03-01

How to process csv data in python


#coding=utf-8
#__author__ = ''
from datetime import *
import datetime
import csv
import sys
import time
import string
import os
import
import pylab as plt
def median(lst):
    even = (0 if len(lst) % 2 else 1) + 1
    half = (len(lst) - 1) / 2
    return sum(sorted(lst)[half:half + even]) / float(even)
def mean(lst):
    if len(lst)==0:
        return 0
    return sum(lst)/len(lst)
nightLine="21:01:00"
morningLine="09:01:00"
def getTheDate(date):
    [filenamePart1,filenamePart2]=(filename,'.')
    [filenamePart11,filenamePart12,filenamePart13]=(filenamePart1,'_')
    return filenamePart13
def afterOneMin(time):
    [tm_local,ms_local]=(time,'.')
    [ymd,hms]=(tm_local,' ')
    flag=0
    if hms>"21:01:00":
        flag=1
    elif hms>"09:01:00" and hms<"20:00:00":
        flag=1
    elif hms>"00:00:00" and hms<"05:00:00":
        flag=1
    return flag
rootdir="/nethome//orderlifeMyWork/xingzheng/csv"
#csvfileMaxMin = open('e:\\csv\__xingzhenMaxMin.csv','wb')
#writer1 = (csvfileMaxMin)
#(['FeedCode','date','SentMaxTime','SentMaxLocalTime','SentMinTime','SentMinLocalTime','SentMeanTime','SentMedian','AckedMaxTime','AckedMaxLocalTime','AckedMinTime','AckedMinLocalTime','AckedMeanTime','AckedMedianTime','Exchange'])
#(['FeedCode','date','SentMaxTime','SentMinTime','SentMeanTime','SentMedian','AckedMaxTime','AckedMinTime','AckedMeanTime','AckedMedianTime','Exchange'])
msg=[]
codeList=list()
orderList=list()
itemSentList=[]
itemAckedList=[]
feedCode=[]
exchange=[]
zhengshangSentMedian=0
zhengshangSentMean=0
zhengshangAckedMedian=0
zhengshangAckedMean=0
dashangSentMedian=0
dashangSentMean=0
dashangAckedMedian=0
dashangAckedMean=0
shangqiSentMedian=0
shangqiSentMean=0
shangqiAckedMedian=0
shangqiAckedMean=0
zhongjinSentMedian=0
zhongjinSentMean=0
zhongjinAckedMedian=0
zhongjinAckedMean=0
zhengshangSent=[]
zhengshangAcked=[]
dashangSent=[]
dashangAcked=[]
shangqiSent=[]
shangqiAcked=[]
zhongjinSent=[]
zhongjinAcked=[]
zhengshangSentMedianAll=[]
zhengshangSentMeanAll=[]
zhengshangAckedMedianAll=[]
zhengshangAckedMeanAll=[]
dashangSentMedianAll=[]
dashangSentMeanAll=[]
dashangAckedMedianAll=[]
dashangAckedMeanAll=[]
shangqiSentMedianAll=[]
shangqiSentMeanAll=[]
shangqiAckedMedianAll=[]
shangqiAckedMeanAll=[]
zhongjinSentMedianAll=[]
zhongjinSentMeanAll=[]
zhongjinAckedMedianAll=[]
zhongjinAckedMeanAll=[]
zhengshang='0'
dashang='0'
shangqi='0'
zhongjin='0'
with open('/nethome//orderlifeCycleData/heyue_150128.csv','rb') as csvfile:
    reader=(csvfile)
    csvItem=[row for row in reader]
    zhengshang=csvItem[300][3]
    dashang=csvItem[5][3]
    shangqi=csvItem[165][3]
    zhongjin=csvItem[435][3]
    #for item in csvItem:
    #    if item[3]==zhengshang:
     #       print item
for parent,dirname,filenames in (rootdir):
    for filename in filenames:
        fileName=(rootdir,filename)
        csvfile1=open(fileName,'rb')
        reader=(csvfile1)
        CsvItem=[row for row in reader]
        for item in CsvItem:
            if item[0]=='FeedCode':
                continue
            if item[0] not in codeList:
                (item[0])
                #print CsvItem[15]
            if len(item)<=5:
                print fileName
                print item
                print '++++++++++++++++++++++++++++++'
            #if afterOneMin(item[3])==0:
            #    print item[3]
            #    continue
            if item[5]==zhengshang and item[2]=='Sent':
                (int(item[4]))
            elif item[5]==zhengshang and item[2]=='Acked':
                (int(item[4]))
            elif item[5]==dashang and item[2]=='Sent':
                 (int(item[4]))
            elif item[5]==dashang and item[2]=='Acked':
                 (int(item[4]))
            elif item[5]==shangqi and item[2]=='Sent':
                 (int(item[4]))
                 if int(item[4])>=600000:
                     print "------------"
                     print item
            elif item[5]==shangqi and item[2]=='Acked':
                 (int(item[4]))
            elif item[5]==zhongjin and item[2]=='Sent':
                 (int(item[4]))
            elif item[5]==zhongjin and item[2]=='Acked':
                 (int(item[4]))
            else:
                 print "wrong info"
                 print item
        if mean(shangqiSent)>420000:
            print sum(shangqiSent)
            print len(shangqiSent)
            print item
            print fileName
            print shangqiSent
        zhengshangSentMedian=median(zhengshangSent)
        zhengshangSentMean=mean(zhengshangSent)
        zhengshangAckedMedian=median(zhengshangAcked)
        zhengshangAckedMean=mean(zhengshangAcked)
        dashangSentMedian=median(dashangSent)
        dashangSentMean=mean(dashangSent)
        dashangAckedMedian=median(dashangAcked)
        dashangAckedMean=mean(dashangAcked)
        shangqiSentMedian=median(shangqiSent)
        shangqiSentMean=mean(shangqiSent)
        shangqiAckedMedian=median(shangqiAcked)
        shangqiAckedMean=mean(shangqiAcked)
        zhongjinSentMedian=median(zhongjinSent)
        zhongjinSentMean=mean(zhongjinSent)
        zhongjinAckedMedian=median(zhongjinAcked)
        zhongjinAckedMean=mean(zhongjinAcked)
        #if mean(shangqiSent)>70:
        #    print '================================'
        #    print fileName
        #print codeList
        '''
        for listItem in codeList:
            itemSentList=[]
            itemAckedList=[]
            for item in CsvItem:
                if item[0]==listItem and item[2]=='Sent':
                    (int(item[4]))
                    exchange=item[5]
                elif  item[0]==listItem and item[2]=='Acked':
                    (int(item[4]))
            #print itemSentList
            itemMaxSent=max(itemSentList)
            itemMinSent=min(itemSentList)
            itemAvgSent=sum(itemSentList)/len(itemSentList)
            itemMaxAcked=max(itemAckedList)
            itemMinAcked=min(itemAckedList)
            itemAvgAcked=sum(itemAckedList)/len(itemAckedList)
            SentMedian=median(itemSentList)
            AckedMedian=median(itemAckedList)
            msg=[]
            (listItem)         #0
            ("2015/01/14")   #1
            (itemMaxSent)     #2
            (itemMinSent)     #3
            (itemAvgSent)     #4
            (SentMedian)     #5
            (itemMaxAcked)    #6
            (itemMinAcked)     #7
            (itemAvgAcked)     #8
            (AckedMedian)      #9
            (exchange)          #10
            if len(msg)>15:
               print "------------------------------"
               print msg
            (msg)
         '''
        (zhengshangSentMedian)
        (zhengshangSentMean)
        (zhengshangAckedMedian)
        (zhengshangAckedMean)
        (dashangSentMedian)
        (dashangSentMean)
        (dashangAckedMedian)
        (dashangAckedMean)
        (shangqiSentMedian)
        (shangqiSentMean)
        (shangqiAckedMedian)
        (shangqiAckedMean)
        (zhongjinSentMedian)
        (zhongjinSentMean)
        (zhongjinAckedMedian)
        (zhongjinAckedMean)
(1)
(2)
(3)
(4)
(1)
('SentMean r-zhengshang b-dashang,green-shangqi grey-zhongjin')
(range(1,len(zhengshangSentMeanAll)+1),zhengshangSentMeanAll,'r')
(range(1,len(dashangSentMeanAll)+1),dashangSentMeanAll,'b')
(range(1,len(shangqiSentMeanAll)+1),shangqiSentMeanAll,'g')
(range(1,len(zhongjinSentMeanAll)+1),zhongjinSentMeanAll,'grey')
('/nethome//orderlifeMyWork/xingzheng/data_noTPO_in10minutes/')
(2)
('SentMedian r-zhengshang b-dashang,green-shangqi grey-zhongjin')
(range(1,len(zhengshangSentMedianAll)+1),zhengshangSentMedianAll,'r')
(range(1,len(dashangSentMedianAll)+1),dashangSentMedianAll,'b')
(range(1,len(shangqiSentMedianAll)+1),shangqiSentMedianAll,'g')
(range(1,len(zhongjinSentMedianAll)+1),zhongjinSentMedianAll,'grey')
('/nethome//orderlifeMyWork/xingzheng/data_noTPO_in10minutes/')
(3)
('AckedMean r-zhengshang b-dashang,green-shangqi grey-zhongjin')
(range(1,len(zhengshangAckedMeanAll)+1),zhengshangAckedMeanAll,'r')
(range(1,len(dashangAckedMeanAll)+1),dashangAckedMeanAll,'b')
(range(1,len(shangqiAckedMeanAll)+1),shangqiAckedMeanAll,'g')
(range(1,len(zhongjinAckedMeanAll)+1),zhongjinAckedMeanAll,'grey')
('/nethome//orderlifeMyWork/xingzheng/data_noTPO_in10minutes/')
(4)
('AckedMedian r-zhengshang b-dashang,green-shangqi grey-zhongjin')
(range(1,len(zhengshangAckedMedianAll)+1),zhengshangAckedMedianAll,'r')
(range(1,len(dashangAckedMedianAll)+1),dashangAckedMedianAll,'b')
(range(1,len(shangqiAckedMedianAll)+1),shangqiAckedMedianAll,'g')
(range(1,len(zhongjinAckedMedianAll)+1),zhongjinAckedMedianAll,'grey')
('/nethome//orderlifeMyWork/xingzheng/data_noTPO_in10minutes/')
()
print 'over'