首页 文章

对合并的CSV文件的更改未保存

提问于
浏览
0

我正在合并两个与系统进程相关的csv文件 . 但是我想对 Headers 进行类似的更改 . 我正在使用的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

    您正在对csvReader进行更改,但不对 merged 进行更改 . 如果您只想调整 Headers 行,可以替换:

    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('\\')]
    

相关问题