python处理csv数据的方法
admin
2023-07-31 02:17:11
0

本文实例讲述了python处理csv数据的方法。分享给大家供大家参考。具体如下:

Python代码:

复制代码 代码如下:
#coding=utf-8
__author__ = \’dehua.li\’
from datetime import *
import datetime
import csv
import sys
import time
import string
import os
import os.path
import pylab as plt
rootdir=\’/nethome/dehua.li/orderlifeCycleData/xingzheng\’
writeFileDir=\”/nethome/dehua.li/orderlifeMyWork/xingzheng/csv\”
heyueFile=\”/nethome/dehua.li/orderlifeCycleData/heyue_150128.csv\”
ms_acked=\”1\”
msg=[]
ex=[]
def getTheDate(date):
    [filenamePart1,filenamePart2]=string.split(filename,\’.\’)
    [filenamePart11,filenamePart12,filenamePart13]=string.split(filenamePart1,\’_\’)
    return filenamePart13
LocalTime=datetime.datetime.fromtimestamp(time.mktime(time.strptime(\”2014-11-04 20:59:59\”,\”%Y-%m-%d %H:%M:%S\”)))
for parent,dirname,filenames in os.walk(rootdir):
    for filename in filenames:
        fileNameWrite=os.path.join(writeFileDir,filename)
        print fileNameWrite
        csvfile00=open(fileNameWrite,\’wb\’)
        writer1=csv.writer(csvfile00)
        writer1.writerow([\’FeedCode\’,\’OrderId\’,\’Status\’,\’LocalTime\’,\’Time\’,\’Exchange\’])
        fileName=os.path.join(parent,filename)
        [filenamePart1,filenamePart2]=string.split(filename,\’.\’)
        [filenamePart11,filenamePart12,filenamePart13]=string.split(filenamePart1,\’_\’)
        #filenamePart11_filenamePart12_filenamePart13.filenamePart2:dongzheng_orderlifeCycleData_20150111.csv
        print fileName
        with open(fileName,\’rb\’) as csvfile:
            reader=csv.reader(csvfile)
            CsvItem=[row for row in reader]
            for item in CsvItem:
                if item[3]==\’TPO\’:
                    #print \” filter TPO \”
                    continue
                if item[12]==\’Sent\’:
                    [tm_local,ms_local]=string.split(item[15],\’.\’)
                    [tm_localup,ms_localup]=string.split(item[19],\’.\’)
                    LocalTime=datetime.datetime.fromtimestamp(time.mktime(time.strptime(tm_local,\”%Y-%m-%d %H:%M:%S\”)))
                    LocalUpdate=datetime.datetime.fromtimestamp(time.mktime(time.strptime(tm_localup,\”%Y-%m-%d %H:%M:%S\”)))
                    tm=int(((LocalTime-LocalUpdate).seconds))*1000
                    ms_sent=str(int(ms_local)-int(ms_localup)+tm)
                    if int(ms_sent)>10*60*1000:
                        print \”ms_sent>600000\”
                        continue
                    if(int(ms_local)-int(ms_localup)+tm)<0:
                        print \’wrong1\’
                    msg=[]
                    msg.append(item[0])
                    msg.append(item[1])
                    msg.append(item[12])
                    msg.append(item[15])
                    msg.append(ms_sent)
                    with open(heyueFile,\’rb\’) as csvfile1:
                        reader=csv.reader(csvfile1)
                        CsvItem=[row for row in reader]
                        for Item in CsvItem:
                            if Item[1]==item[0]:
                                msg.append(Item[3])
                                writer1.writerow(msg)
                                #print \’write ok\’
                                ex=Item[3]
                                break
                    csvfile1.close()
                    with open(fileName,\’rb\’) as csvfile22:
                        reader=csv.reader(csvfile22)
                        CsvItem2=[row for row in reader]
                        for item_ in CsvItem2:
                            if item_[12]==\’Acked\’ and item_[1]==item[1]:
                                [tm_local2,ms_local2]=string.split(item_[15],\’.\’)
                                LocalTime2=datetime.datetime.fromtimestamp(time.mktime(time.strptime(tm_local2,\”%Y-%m-%d %H:%M:%S\”)))
                                tm2=int(((LocalTime2-LocalTime).seconds))*1000
                                ms_acked=str(int(ms_local2)-int(ms_local)+tm2)
                                if int(ms_acked)>10*60*1000:
                                    print \”MSacked>600000\”
                                    continue
                                msg=[]
                                msg.append(item_[0])
                                msg.append(item_[1])
                                msg.append(item_[12])
                                msg.append(item_[15])
                                msg.append(ms_acked)
                    with open(heyueFile,\’rb\’) as csvfile111:
                        reader=csv.reader(csvfile111)
                        CsvItem=[row for row in reader]
                        for Item in CsvItem:
                            if Item[1]==item[0]:
                                msg.append(Item[3])
                                writer1.writerow(msg)
                                #print \’write ok\’
                                break
                                #print \”write ok\”
                    csvfile22.close()
        csvfile.close()
        csvfile00.close()

复制代码 代码如下:
#coding=utf-8
#__author__ = \’dehua.li\’
from datetime import *
import datetime
import csv
import sys
import time
import string
import os
import os.path
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]=string.split(filename,\’.\’)
    [filenamePart11,filenamePart12,filenamePart13]=string.split(filenamePart1,\’_\’)
    return filenamePart13
def afterOneMin(time):
    [tm_local,ms_local]=string.split(time,\’.\’)
    [ymd,hms]=string.split(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/dehua.li/orderlifeMyWork/xingzheng/csv\”
#csvfileMaxMin = open(\’e:\\dehua.li\\csv\\__xingzhenMaxMin.csv\’,\’wb\’)
#writer1 = csv.writer(csvfileMaxMin)
#writer1.writerow([\’FeedCode\’,\’date\’,\’SentMaxTime\’,\’SentMaxLocalTime\’,\’SentMinTime\’,\’SentMinLocalTime\’,\’SentMeanTime\’,\’SentMedian\’,\’AckedMaxTime\’,\’AckedMaxLocalTime\’,\’AckedMinTime\’,\’AckedMinLocalTime\’,\’AckedMeanTime\’,\’AckedMedianTime\’,\’Exchange\’])
#writer1.writerow([\’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/dehua.li/orderlifeCycleData/heyue_150128.csv\’,\’rb\’) as csvfile:
    reader=csv.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 os.walk(rootdir):
    for filename in filenames:
        fileName=os.path.join(rootdir,filename)
        csvfile1=open(fileName,\’rb\’)
        reader=csv.reader(csvfile1)
        CsvItem=[row for row in reader]
        for item in CsvItem:
            if item[0]==\’FeedCode\’:
                continue
            if item[0] not in codeList:
                codeList.append(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\’:
                zhengshangSent.append(int(item[4]))
            elif item[5]==zhengshang and item[2]==\’Acked\’:
                zhengshangAcked.append(int(item[4]))
            elif item[5]==dashang and item[2]==\’Sent\’:
                 dashangSent.append(int(item[4]))
            elif item[5]==dashang and item[2]==\’Acked\’:
                 dashangAcked.append(int(item[4]))
            elif item[5]==shangqi and item[2]==\’Sent\’:
                 shangqiSent.append(int(item[4]))
                 if int(item[4])>=600000:
                     print \”————\”
                     print item
            elif item[5]==shangqi and item[2]==\’Acked\’:
                 shangqiAcked.append(int(item[4]))
            elif item[5]==zhongjin and item[2]==\’Sent\’:
                 zhongjinSent.append(int(item[4]))
            elif item[5]==zhongjin and item[2]==\’Acked\’:
                 zhongjinAcked.append(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\’:
                    itemSentList.append(int(item[4]))
                    exchange=item[5]
                elif  item[0]==listItem and item[2]==\’Acked\’:
                    itemAckedList.append(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=[]
            msg.append(listItem)         #0
            msg.append(\”2015/01/14\”)   #1
            msg.append(itemMaxSent)     #2
            msg.append(itemMinSent)     #3
            msg.append(itemAvgSent)     #4
            msg.append(SentMedian)     #5
            msg.append(itemMaxAcked)    #6
            msg.append(itemMinAcked)     #7
            msg.append(itemAvgAcked)     #8
            msg.append(AckedMedian)      #9
            msg.append(exchange)          #10
            if len(msg)>15:
               print \”——————————\”
               print msg
            writer1.writerow(msg)
         \’\’\’
        zhengshangSentMedianAll.append(zhengshangSentMedian)
        zhengshangSentMeanAll.append(zhengshangSentMean)
        zhengshangAckedMedianAll.append(zhengshangAckedMedian)
        zhengshangAckedMeanAll.append(zhengshangAckedMean)
        dashangSentMedianAll.append(dashangSentMedian)
        dashangSentMeanAll.append(dashangSentMean)
        dashangAckedMedianAll.append(dashangAckedMedian)
        dashangAckedMeanAll.append(dashangAckedMean)
        shangqiSentMedianAll.append(shangqiSentMedian)
        shangqiSentMeanAll.append(shangqiSentMean)
        shangqiAckedMedianAll.append(shangqiAckedMedian)
        shangqiAckedMeanAll.append(shangqiAckedMean)
        zhongjinSentMedianAll.append(zhongjinSentMedian)
        zhongjinSentMeanAll.append(zhongjinSentMean)
        zhongjinAckedMedianAll.append(zhongjinAckedMedian)
        zhongjinAckedMeanAll.append(zhongjinAckedMean)
plt.figure(1)
plt.figure(2)
plt.figure(3)
plt.figure(4)
plt.figure(1)
plt.title(\’SentMean r-zhengshang b-dashang,green-shangqi grey-zhongjin\’)
plt.plot(range(1,len(zhengshangSentMeanAll)+1),zhengshangSentMeanAll,\’r\’)
plt.plot(range(1,len(dashangSentMeanAll)+1),dashangSentMeanAll,\’b\’)
plt.plot(range(1,len(shangqiSentMeanAll)+1),shangqiSentMeanAll,\’g\’)
plt.plot(range(1,len(zhongjinSentMeanAll)+1),zhongjinSentMeanAll,\’grey\’)
plt.savefig(\’/nethome/dehua.li/orderlifeMyWork/xingzheng/data_noTPO_in10minutes/SentMean.png\’)
plt.figure(2)
plt.title(\’SentMedian r-zhengshang b-dashang,green-shangqi grey-zhongjin\’)
plt.plot(range(1,len(zhengshangSentMedianAll)+1),zhengshangSentMedianAll,\’r\’)
plt.plot(range(1,len(dashangSentMedianAll)+1),dashangSentMedianAll,\’b\’)
plt.plot(range(1,len(shangqiSentMedianAll)+1),shangqiSentMedianAll,\’g\’)
plt.plot(range(1,len(zhongjinSentMedianAll)+1),zhongjinSentMedianAll,\’grey\’)
plt.savefig(\’/nethome/dehua.li/orderlifeMyWork/xingzheng/data_noTPO_in10minutes/SentMedian.png\’)
plt.figure(3)
plt.title(\’AckedMean r-zhengshang b-dashang,green-shangqi grey-zhongjin\’)
plt.plot(range(1,len(zhengshangAckedMeanAll)+1),zhengshangAckedMeanAll,\’r\’)
plt.plot(range(1,len(dashangAckedMeanAll)+1),dashangAckedMeanAll,\’b\’)
plt.plot(range(1,len(shangqiAckedMeanAll)+1),shangqiAckedMeanAll,\’g\’)
plt.plot(range(1,len(zhongjinAckedMeanAll)+1),zhongjinAckedMeanAll,\’grey\’)
plt.savefig(\’/nethome/dehua.li/orderlifeMyWork/xingzheng/data_noTPO_in10minutes/AckedMean.png\’)
plt.figure(4)
plt.title(\’AckedMedian r-zhengshang b-dashang,green-shangqi grey-zhongjin\’)
plt.plot(range(1,len(zhengshangAckedMedianAll)+1),zhengshangAckedMedianAll,\’r\’)
plt.plot(range(1,len(dashangAckedMedianAll)+1),dashangAckedMedianAll,\’b\’)
plt.plot(range(1,len(shangqiAckedMedianAll)+1),shangqiAckedMedianAll,\’g\’)
plt.plot(range(1,len(zhongjinAckedMedianAll)+1),zhongjinAckedMedianAll,\’grey\’)
plt.savefig(\’/nethome/dehua.li/orderlifeMyWork/xingzheng/data_noTPO_in10minutes/AckedMedian.png\’)
plt.show()
print \’over\’

希望本文所述对大家的Python程序设计有所帮助。

相关内容

热门资讯

500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
python查找阿姆斯特朗数 题目解释 如果一个n位正整数等于其各位数字的n次方之和,则称该数为阿姆斯特朗数。 例如1^3 + 5...
Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...