2016-05-27 4 views
0

Я слияние двух файлов csv, которые относятся к системному процессу. Однако я хочу внести изменения в заголовок. Примеры CSV-файла я использую (пример процесса: «питона»):Изменения в объединенном CSV-файле не сохраняются

Date,  Process(python)\% Processor Time, Process(python)\Thread Count, Process(python)\Working Set 
xx/xx/xx xxxx         xxxx       xxxx 
xx/xx/xx xxxx         xxxx       xxxx 
xx/xx/xx xxxx         xxxx       xxxx 
xx/xx/xx xxxx         xxxx       xxxx 
xx/xx/xx xxxx         xxxx       xxxx 

У меня есть скрипт, который будет обрезать строку удаления нежелательных 'Process(python)\' часть строки. С помощью оператора печати я могу проверить, что на экране печатается нужная строка.

% Processor Time 
Thread Count 
Working Set 

Однако, когда я сохраняю этот новый объединенный файл, эти изменения не сохраняются. Как я могу гарантировать, что изменения, которые я делаю для удаления нежелательных 'Process(python)\', сохраняются в выходной файл?

Мой код:

def merge_process_csv(path,processes): 
    for process_name in processes: 
     a = pd.read_csv(path+process_name+"_data_1.csv") 
     b = pd.read_csv(path+process_name+"_data_2.csv") 
     b = b.dropna(axis=1) 
     merged = a.merge(b, on='Date') 

     csvReader = csv.reader(merged) 
     for row in csvReader: 
      #Changes 'Process(python)\% Processor Time' into '% Processor Time' 
      row = truncate_string(row[0],"\\",1) 
      print row 

     merged.to_csv(path+process_name+".csv", index=False) 

ответ

0

Вы вносите изменения в CSVReader но не merged. Если все, что вы хотите сделать, настроить строку заголовка, вы можете заменить:

csvReader = csv.reader(merged) 
for row in csvReader: 
    #Changes 'Process(python)\% Processor Time' into '% Processor Time' 
    row = truncate_string(row[0],"\\",1) 
    print row 

с

merged.columns = [col[-1] for col in merged.columns.str.split('\\')] 
+0

Спасибо за вашу помощь, но то, что я могу определить 'df', как? – Catherine

+0

Мой плохой. Это должно быть «слито». Я отредактировал свой ответ. –