处理CSV文件并将值与python组合

时间:2013-03-05 20:26:05

标签: python csv import-from-csv

我有一个CSV文件,其中包含以下方式的数据

"/file/Puppies";"$2,166.74";"2,502";"5.55%";"$48.10";"152,844";"45,044"
"/file/Kittens";"$1,498.59";"1,618";"3.54%";"$32.75";"157,560";"45,764"
"/file/Puppies/pup";"$1,174.92";"1,451";"3.72%";"$30.10";"116,268";"39,038"

如果第一列相似,我想组合第二列,其余值无关紧要。

因此,在示例中,第2列中的/file/Puppies/file/Puppies/pup值将在最终输出中一起添加。

相似我的意思是,例如/file/Puppies//file/Puppies/1/file/Puppies/ru都会相似。但/ file / Kittens不会。

关于如何开始的任何想法?

1 个答案:

答案 0 :(得分:0)

构造一个字典来保存值,然后将每行添加到每个字典值

Values = {}
from csv import reader
with open('CSVFile.csv', 'r') as filehandle :
    reader = reader(filehandle,delimiter=';')
    for row in reader :
        Class = row[0].split('/')[2]
        Value = float(row[1].strip('$').replace(',', ''))
        if Class in Values :
            Values[Class] = Values[Class] + Value
        else :
            Values[Class] = Value
print Values

在这里,我对“类似”的意思做了一些简化的假设 - 也就是说,我认为你的意思是'/ file /'之后的第一件事,并一直持续到该字段或下一个字段的结尾'/'。这就是我所说的Class

然后,我从你的数据中取出第二列,剥离'$',删除逗号,然后转换为浮点数。

然后,因为我们正在构建一个字典,我们必须测试我们是否已经看过一个小狗,或者其他什么。如果是这样,只需添加到以前的值;如果没有,请设置值。

相关问题