按字段值从CSV文件组合数据 [英] Group data from a CSV file by field value
本文介绍了按字段值从CSV文件组合数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个csv文件,在第一列有重复的值。我想在列表中为第一列的一个值收集第二列的所有值
column1 column2
a 54.2
s 78.5
k 89.62
a 77.2
a 65.56
得到像
print a#[54.2,77.2,65.56]
print s#[78.5]
print k#[89.62]
解决方案
使用python的 CSV阅读器。
data.csv
a,54.2
s,78.5
k ,89.62
a,77.2
a,65.56
script.py
import csv
result = {}
open('data.csv','rb')as csvfile:
csvreader = csv.reader(csvfile,delimiter =',',quotechar ='')
for csvreader:
if result [0] in result:
result [row [0]] append(row [1])$ b $ b else:
result [row [0]] = [row [ 1]]
打印结果
{
'a':['54 .2','77 .2','65 .56'],
'':['78 .5'],
'k':['89 .62']
}
随着@Pete的出现,你可以使用 defaultdict :
script.py
>
import csv
从集合import defaultdict
result = defaultdict(list)#dict的每个条目,默认情况下,一个空列表
with open('data.csv','rb')as csvfile:
csvreader = csv.reader(csvfile,delimiter =',',quotechar = ''')
for csvreader:
result [row [0]]。append(row [1])$ b
$ b打印结果
I have a csv file which has duplicate value in first column . I want to collect all value of second column in a list for one value of first column
column1 column2
a 54.2
s 78.5
k 89.62
a 77.2
a 65.56
I want to get like
print a # [54.2,77.2,65.56]
print s # [78.5]
print k # [89.62]
解决方案
It seems fairly straightforward using python's CSV reader.
data.csv
a,54.2
s,78.5
k,89.62
a,77.2
a,65.56
script.py
import csv
result = {}
with open('data.csv', 'rb') as csvfile:
csvreader = csv.reader(csvfile, delimiter=',', quotechar='"')
for row in csvreader:
if row[0] in result:
result[row[0]].append(row[1])
else:
result[row[0]] = [row[1]]
print result
output
{
'a': ['54.2', '77.2', '65.56'],
's': ['78.5'],
'k': ['89.62']
}
As @Pete poined out, you can beautify it using defaultdict:
script.py
import csv
from collections import defaultdict
result = defaultdict(list) # each entry of the dict is, by default, an empty list
with open('data.csv', 'rb') as csvfile:
csvreader = csv.reader(csvfile, delimiter=',', quotechar='"')
for row in csvreader:
result[row[0]].append(row[1])
print result
这篇关于按字段值从CSV文件组合数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文