On 09/03/2011 9.21, nookasree ponamala wrote:
Hi,

I need help in finding the minimum date and maximum date in a file.
Here is my test file:
s.no:   dt1     amt     id1     id2
452     2010-02-20      $23.26      059542        06107
452     2010-02-05      $20.78      059542        06107
451     2010-02-24      $5.99       059542        20151
452     2010-02-12      $114.25     839745        98101
452     2010-02-06      $28.00      839745        06032
451     2010-02-12      $57.00      839745        06269

I want to get the minimum and maximum dt1 for each id1

Required result:

id1 mindate maxdate
059542  2010-02-24      2010-02-20              
839745  2010-02-06      2010-02-12

Code: The code I tried. It doesn't work though.

I noticed that your dates are formatted in a way that makes it easy to compare 
them as strings.
This allows you not only to do without splitting dates into year, month and 
day, but also to do without the datetime module:
I'm also, AFAIK, the first one to address your need for the min and max date 
FOR EACH ID1, not in the whole file.

.    ids = {}  # create an empty dictionary to store results
.    for L in open("test.txt", "r"):
.      S = L.split()  # allow direct access to fields
.      if S[3] in ids:
.        mindate, maxdate = ids[S[3]]  # current stored minimum and maximum date
.        if S[1] < mindate:
.          mindate = S[1]
.        if S[1] > maxdate:
.          maxdate = S[1]
.        ids[S[3]] = (mindate, maxdate)  # new stored min and max
.      else:
.        ids[S[3]] = (S[1], S[1])  # initialize storage for the current id1, 
with min and max in a tuple
.    #leave print formatting as an exercise to the reader (but you can do 
without it!)
.    print ids

Hope this helps...
Francesco


-----
Nessun virus nel messaggio.
Controllato da AVG - www.avg.com
Versione: 10.0.1204 / Database dei virus: 1497/3495 -  Data di rilascio: 
09/03/2011

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to