我正在尝试附加列标题(硬编码)并将列表中的列值附加到现有的csv。我没有得到想要的结果。在
方法1正在将结果附加到现有的csv文件上。方法2将现有csv的副本克隆到温度csv. 这两种方法都不能得到我想要的输出。在结果1中,它只在最后一行单元格之后追加。在结果2中,所有列表值都追加到每一行。预期的结果是我要找的。在
我在下面包含了我的代码。感谢任何意见或指导。在
现有CSV测试.csv
Type,Id,TypeId,CalcValues
B,111K,111Kequity(long) 111K,116.211768
C,111N,B(long) 111N,0.106559957
B,111J,c(long) 111J,20.061634
代码-方法1和方法2
^{pr2}$方法1的结果
Type,Id,TypeId,CalcValues
B,111K,111Kequity(long) 111K,116.211768
C,111N,B(long) 111N,0.106559957
B,111J,c(long) 111J,20.0616340.1065599566767107
0.0038113334533441123
20.061623176440904
方法2的结果
Type,Id,TypeId,CalcValues,Results
B,111K,111Kequity(long) 111K,116.211768,0.1065599566767107,20.061623176440904,0.0038113334533441123
C,111N,B(long) 111N,0.106559957,0.1065599566767107,20.061623176440904,0.0038113334533441123
B,111J,c(long) 111J,20.061634,0.1065599566767107,20.061623176440904,0.0038113334533441123
预期结果
Type,Id,TypeId,CalcValues,ID
B,111K,111Kequity(long) 111K,116.211768,0.1065599566767107
C,111N,B(long) 111N,0.106559957,20.061623176440904
B,111J,c(long) 111J,20.061634,0.0038113334533441123
我将头字段存储到}的第一个元素
HEADER
,并切换final_results
的第二和第三个元素,使用pop(0)
移除并返回{输出:
^{pr2}$第一个方法肯定会失败:您不想添加新行,而是要添加新列。所以回到第二种方法:
您可以插入标题,但随后将循环遍历每行的结果,而您需要对它们进行迭代。在
为此,我从
final_results
列表(使用__iter__()
)创建一个迭代器,然后调用it.next
并追加到每一行(不需要在末尾插入,只需追加)我删除了
all
大列表,因为1)你可以一次写一行,节省内存,2)all
是一个预定义的函数。避免将其用作变量。在结果:
^{pr2}$注意:如果我们在
final_results
变量中包含"Results"
,我们甚至不需要以不同的方式处理第一行。在注2:值似乎错误:
final_results
的顺序与预期输出的顺序不同。并且Result
列已经变成了ID
,但这很容易纠正。在相关问题 更多 >
编程相关推荐