我正在尝试创建一个干净的csv文件,方法是将旧文件中的一些变量合并到一起,并将它们附加到一个新的csv文件中。
我第一次运行数据没有问题。我得到了我想要的输出,但是每当我试图用一个新变量(即新列)追加数据时,它都会将变量追加到底部,而输出是不稳定的。
我基本上一直在为每个变量运行相同的代码,除了更改 groupvariables变量到我想要的变量,然后使用f2=open('outputfile.csv',“ab”)<;——但是使用ab进行修改。任何帮助都将不胜感激
groupvariables=['x','y']
f2 = open('outputfile.csv', "wb")
writer = csv.writer(f2, delimiter=",")
writer.writerow(("ID","Diagnosis"))
for line in csv_f:
line = line.rstrip('\n')
columns = line.split(",")
tempname = columns[0]
tempindvar = columns[1:]
templist = []
for j in groupvariables:
tempvar=tempindvar[headers.index(j)]
if tempvar != ".":
templist.append(tempvar)
newList = list(set(templist))
if len(newList) > 1:
output = 'nomatch'
elif len(newList) == 0:
output = "."
else:
output = newList[0]
tempoutrow = (tempname,output)
writer.writerow(tempoutrow)
关闭()
CSV是一种基于行的文件格式,因此将列添加到现有CSV文件的唯一方法是将其读入内存并完全覆盖它,将新列添加到每行。
不过,如果您只想添加行,那么追加就可以了。
这是可能有用的东西。我假设每个csv文件中每行的第一个字段是记录的主键,可以用来匹配两个文件之间的行。下面的代码从一个文件中读取记录,将其存储在字典中,然后从另一个文件中读取记录,将值附加到字典中,并写出一个新文件。你可以修改这个例子以更好地适应你的实际问题。
相关问题 更多 >
编程相关推荐