当我们使用pandas
包进行csv文件保存时,出现报错TypeError: can only concatenate str (not "list") to str,由于在保存文件时,我使用了多个变量进行文件名字和保存路径的赋值
原代码为
name=['100','1000','10000','100000','1000000']
for i in name:
start_memory = psutil.Process().memory_info().rss
train_name='data_' +i
test_name='data_' +i
trainfile_path ="/a/time/"
result_path="intersection/time/"
train_main(testfile_path,i,train_name,test_name,result_path)
end_memory = psutil.Process().memory_info().rss
memory_usage = end_memory - start_memory
memory_usage_mb = memory_usage / 1024
memory_usage_mb.to_csv(result_path +name+'time_memory'+ '.csv')
分析上面的代码, memory_usage_mb.to_csv(result_path +name+'time_memory'+ '.csv')在每一次循环中,name是list中的一个数值,而在循环外name
是一个包含多个字符串的列表,如果想要将它们连接起来,使用str(name), 需要先将name中的数值变为字符串
修改最后保存csv文件的代码为:
memory_usage_mb.to_csv(result_path +str(name)+'time_memory'+ '.csv')
在使用.to_csv保存文件时的注意事项 :
1.最后文件需要添加适当的文件扩展名(如.csv
),
2.行索引和列标签:可以选择是否保存行索引和列标签。使用index
参数来控制是否保存行索引,使用header
参数来控制是否保存列标签。
3.文件路径:确保为保存的文件指定正确的路径。可以使用绝对路径或相对路径,在指定相对路径时,确保当前工作目录正确。
4.分隔符:.to_csv
方法默认使用逗号作为字段之间的分隔符,可以通过sep
参数进行自定义。另外,还可以设置delimiter
参数来指定字段内部的分隔符,如将字段值用引号括起来。