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

Changes to a Merged CSV file not saving

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

您正在更改 csvReader,而不是 merged。如果你想做的只是调整 header 行,你可以替换:

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