Looking for direction

Dave Angel davea at davea.name
Wed May 13 21:12:53 EDT 2015


On 05/13/2015 08:45 PM, 20/20 Lab wrote:>
You accidentally replied to me, rather than the mailing list. Please 
use reply-list, or if your mailer can't handle that, do a Reply-All, and 
remove the parts you don't want.
 >
 > On 05/13/2015 05:07 PM, Dave Angel wrote:
 >> On 05/13/2015 07:24 PM, 20/20 Lab wrote:
 >>> I'm a beginner to python. Reading here and there. Written a couple of
 >>> short and simple programs to make life easier around the office.
 >>>
 >> Welcome to Python, and to this mailing list.
 >>
 >>> That being said, I'm not even sure what I need to ask for. I've never
 >>> worked with external data before.
 >>>
 >>> I have a LARGE csv file that I need to process. 110+ columns, 72k
 >>> rows.
 >>
 >> That's not very large at all.
 >>
 > In the grand scheme, I guess not. However I'm currently doing this
 > whole process using office. So it can be a bit daunting.
I'm not familiar with the "office" operating system.
 >>> I managed to write enough to reduce it to a few hundred rows, and
 >>> the five columns I'm interested in.
 >>
 >>>
 >>> Now is were I have my problem:
 >>>
 >>> myList = [ [123, "XXX", "Item", "Qty", "Noise"],
 >>> [72976, "YYY", "Item", "Qty", "Noise"],
 >>> [123, "XXX" "ItemTypo", "Qty", "Noise"] ]
 >>>
 >>
 >> It'd probably be useful to identify names for your columns, even if
 >> it's just in a comment. Guessing from the paragraph below, I figure
 >> the first two columns are "account" & "staff"
 >
 > The columns that I pull are Account, Staff, Item Sold, Quantity sold,
 > and notes about the sale (notes arent particularly needed, but the
 > higher ups would like them in the report)
 >>
 >>> Basically, I need to check for rows with duplicate accounts row[0] and
 >>> staff (row[1]), and if so, remove that row, and add it's Qty to the
 >>> original row.
 >>
 >> And which column is that supposed to be? Shouldn't there be a number
 >> there, rather than a string?
 >>
 >>> I really dont have a clue how to go about this. The
 >>> number of rows change based on which run it is, so I couldnt even get
 >>> away with using hundreds of compare loops.
 >>>
 >>> If someone could point me to some documentation on the functions I 
would
 >>> need, or a tutorial it would be a great help.
 >>>
 >>
 >> Is the order significant? Do you have to preserve the order that the
 >> accounts appear? I'll assume not.
 >>
 >> Have you studied dictionaries? Seems to me the way to handle the
 >> problem is to read in a row, create a dictionary with key of (account,
 >> staff), and data of the rest of the line.
 >>
 >> Each time you read a row, you check if the key is already in the
 >> dictionary. If not, add it. If it's already there, merge the data as
 >> you say.
 >>
 >> Then when you're done, turn the dict back into a list of lists.
 >>
 > The order is irrelevant. No, I've not really studied dictionaries, but
 > a few people have mentioned it. I'll have to read up on them and, more
 > importantly, their applications. Seems that they are more versatile
 > then I thought.
 >
 > Thank you.
You have to realize that a tuple can be used as a key, in your case a 
tuple of Account and Staff.
You'll have to decide how you're going to merge the ItemSold, 
QuantitySold, and notes.
-- 
DaveA
-- 
DaveA


More information about the Python-list mailing list

AltStyle によって変換されたページ (->オリジナル) /