2016-05-27 135 views
0

我合并,涉及到一个系统过程中的两个的CSV文件。不过,我想对Header进行类似的更改。 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

我的不好。这应该是“合并”。我编辑了我的答案。 –