2016-03-03 17 views
-2

實際上,我正在合併兩個文件,合併後得到的最終輸出是我想要重新排序的內容。更改python中csv文件的列順序

Conent的file1的

ID,名稱,類

1,圖莎爾,10

2,Barkha,12

3,吠陀支,4

4 ,Vaanika,1

內容的file2的

ID,LastN,第

1,古普塔,A

2,古普塔,B

3,古普塔,C

4,古普塔,d

合併文件

ID,名稱,類LastN,第

1,圖莎爾,10,古普塔,A

2,Barkha,12,古普塔,B

3,吠陀支,4 ,古普塔,C

4,Vaanika,1,古普塔,d

我想重新安排上述的一些列作爲

ID,名稱,LastN,類,第

1,圖莎爾,古普塔,10,A

2,Barkha,古普塔,12,B

3,吠陀支,古普塔4,C

4,Vaanika,古普塔,1,d

登記在它們出現的列的排列順序變化。

有沒有辦法可以做,任何幫助表示讚賞。

在此先感謝。

以下是我正在使用的代碼。

import csv 
import pandas as pd 

def mergeFiles(): 
    a = pd.read_csv("C:/tushar/Python/file1.txt") 
    b = pd.read_csv("C:/tushar/Python/file2.txt") 

    #print(a) 
    #print(b) 

    merged = a.merge(b, on='ID') 
    #print(merged) 
    merged.to_csv("C:/tushar/Python/output1.csv", index=False) 

def writeFiles(): 
    with open('C:/tushar/Python/output1.csv') as fi, open('C:/tushar/Python/output2.csv', 'wb') as fo: 
     cr = csv.reader(fi) 
     cw = csv.writer(fo) 

     for ln in cr: 
      lo = [ln[0], ln[1], ln[3], ln[2], ln[4]] 
      cw.writerow(lo) 
     print(cw) 

def main(): 
    mergeFiles() 
    writeFiles() 

main() 
+0

給我們一些啓動代碼向我們展示你至少嘗試。 – Seekheart

+0

完成,只是爲了保密,我使用虛擬數據。 – tush1r

回答

0

CSV文件被讀入列表,這樣簡單地重新排列的列表,並把它寫回退:

import csv 

#input: ID,Name,Class,LastN,Section 
#output: ID,Name,LastN,Class,Section 

with open('xx.csv') as fi, open('x2.csv', 'wb') as fo: 
    cr = csv.reader(fi) 
    cw = csv.writer(fo) 
    for ln in cr: 
     lo = [ln[0], ln[1], ln[3], ln[2], ln[4]] 
     cw.writerow(lo) 
+0

感謝分享,但我仍然沒有得到我想要的。 – tush1r

+0

你在問什麼 - 你的發佈代碼和我顯示的是在做你所問的 - 缺少什麼? – gkusner