Python's methods for processing CSV data _python

Source: Internet
Author: User

The example in this article describes how Python processes csv data. Share to everyone for your reference. Specifically as follows:

Python code:

Copy Code code as follows:



#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 ()


Copy Code code as follows:



#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 '


I hope this article will help you with your Python programming.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.