2015-09-24 123 views
0

我有一個csv的用戶和一個csv的虛擬機,我只需要將用戶合併到他們的vms中,只要他們的id匹配。合併兩個共同列匹配的csv文件

但所有即時通訊都是一個包含所有內容的巨大文件。

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() 

我相對較新的蟒蛇,我錯過了什麼?

+0

什麼讓你覺得文檔'拉鍊(* o_data)'會自動匹配你的數據? –

+0

Idk,我的猜測是這就是爲什麼我只是得到巨大的文件? – MrUglama

+0

我如何告訴它只需添加我想要的? – MrUglama

回答

0

我一直髮現熊貓真的有助於這樣的任務。您可以簡單地將數據集加載到熊貓數據框中,然後使用合併功能將它們合併到一列中的值相同的位置。

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

相關問題