合并CSV文件的更改未保存

时间:2016-05-27 12:22:55

标签: python csv pandas merge editing

我正在合并两个与系统进程相关的csv文件。但是我想对标题进行类似的更改。 我正在使用的csv文件的示例(示例进程:'python'):

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)\'部分。 使用print语句我可以验证所需的字符串是否正在打印到屏幕上。

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

1 个答案:

答案 0 :(得分: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('\\')]