我有一个csv的用户和一个csv的虚拟机,我需要将用户合并到他们的vms中,只有他们的id匹配。
但是我得到的是一个包含所有内容的巨大文件。
file_names = ['vms.csv', 'users.csv']
o_data = []
for afile in file_names:
file_h = open(afile)
a_list = []
a_list.append(afile)
csv_reader = csv.reader(file_h, delimiter=';')
for row in csv_reader:
a_list.append(row[0])
o_data.append((n for n in a_list))
file_h.close()
with open('output.csv', 'w') as op_file:
csv_writer = csv.writer(op_file, delimiter=';')
for row in list(zip(*o_data)):
csv_writer.writerow(row)
op_file.close()
我对python比较新,我错过了什么吗?
答案 0 :(得分:0)
我总是发现大熊猫对这样的任务非常有帮助。您可以简单地将数据集加载到pandas数据框中,然后使用合并函数将它们合并到列中的值相同的位置。
import pandas
vms = pandas.read_csv('vms.csv')
users = pandas.read_csv('users.csv')
output = pandas.merge(vms, users)
output.to_csv('output.tsv')
您可以在http://pandas.pydata.org/pandas-docs/stable/merging.html
找到不同选项的文档