当前表
所需结果
目前无法获得任何结果。不知道从这里去哪里。
import csv
csv_dict = {}
with open("Test.csv", "r") as source:
reader = csv.reader(source)
header = next(reader)
for row in reader:
if row[0] in csv_dict:
csv_dict[row[0]] += row
else:
csv_dict[row[0]] = row
print (row)
答案 0 :(得分:2)
您尝试执行的操作无效,因为您每次都添加整行。
您要过滤出空白并在一键上累积值。
有2种方法(有2种不同的结果):
import csv,collections
csv_dict = collections.defaultdict(list)
with open("test.csv", "r") as source:
reader = csv.reader(source)
header = next(reader)
for key,*rest in reader:
csv_dict[key] += filter(None,rest)
print(csv_dict)
您将获得此字典:{'b': ['2', '4'], 'a': ['1', '2', '3', '4']}
在这种情况下,如果索引不适合,则必须增加列表大小。
import collections,csv
csv_dict = collections.defaultdict(list)
with open("test.csv", "r") as source:
reader = csv.reader(source)
header = next(reader)
for key,*rest in reader:
for i,r in enumerate(rest):
if r:
d = csv_dict[key]
while i>=len(d):
d.append("")
d[i] = r
print(csv_dict)
产生:
{'a': ['1', '2', '3', '4'], 'b': ['', '2', '', '4']}
在两种情况下,there are several solutions都会将此字典写入到生成的csv文件中(使用csv.DictWriter
,csv.writer
,pandas
模块)。