对合并的 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('\')]
我正在合并两个与系统进程相关的 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('\')]