2017-10-04 69 views
0

我想用python刪除csv文件中的多列,但是我的代碼只是刪除了第一行的列......任何解決方案?使用Python刪除列CSV文件

這是我在Python 3.5的代碼:

import csv 
with open("source.csv","r") as source: 
    rdr= csv.reader(source) 
    with open("result.csv","w") as result: 
     wtr= csv.writer(result) 
     for r in rdr: 
      wtr.writerow((r[0], r[1], r[3], r[4])) 

我的csv文件我運行python腳本之前:

1 row - Policy Name,Client Name,Job Duration,Protected,Schedule/Level Type,Job Start Time,Job End Time,Job Directory,Job Status 

2 row - 
PRD19_CABFLAFPRD01_9999CA2,cabflafprd01,15:11:32,"11,161,482.25",Full,"Sep 4, 2017 7:31:09 AM","Sep 4, 2017 10:42:41 PM",/cabflafprdp/grupos,Successful,,,,,,,, 

3 row - PRD19_CABFLAFPRD01_9999CA0,cabflafprd01,09:26:50,"4,673,460.75",Full,"Sep 4, 2017 7:31:09 AM","Sep 4, 2017 4:57:59 PM",/cabflafprdp/homedir,Successful,,,,,,,, 

後:

1 - Policy Name,Client Name,Protected,Schedule/Level Type 

2 - PRD19_CABFLAFPRD01_9999CA0,cabflafprd01,08:29:51,0,Full,"Jun 1, 2017 4:30:16 AM","Jun 1, 2017 1:00:07 PM",/cabflafprdp/homedir,Successful,,, 

3 - PRD19_CABFLAFPRD01_9999CA0,cabflafprd01,08:28:07,"4,723,908",Full,"Jun 1, 2017 4:32:00 AM","Jun 1, 2017 1:00:07 PM",/cabflafprdp/homedir,Successful,,, 
+0

你確定你的代碼只是刪除第一行中的列列? – Hejun

+0

是的,我不知道爲什麼... –

+0

但我可以得到每行的前四列與您的代碼 – Hejun

回答

0

可能是你能請看pandas

import pandas as pd 
df = pd.read_csv('source.csv', header=0, usecols=["Policy Name", "Client Name", "Protected", "Schedule/Level Type"]) 
df.to_csv('result.csv') 
0

熊貓爲每個行的一個很好的選擇,當您創建使用名稱=「ABCDE」,那麼每列將有一個字母,然後下一個命令

import pandas as pd 

df1 = pd.read_csv('source', names = 'abc', header = 0) 
df2 = df1.drop('b', axis = 1) 

print (df2) 

然後輸出的數據幀爲它們命名文件回CSV

df3 = data.to_csv('source_with_dropped_columns') 

第二行的代碼將刪除名爲「b」