为什么这给了我一个浮动值在第二列和创build两行?

我的代码打开一个Excel工作簿,并从工作簿中的前四张复制前两行。

有了这个代码,它会产生5个不同的列,如果你引用所需的输出,我希望它是2个不同的列。

另一件我不明白的是为什么第三和第四列是浮动的。 为什么这是一个浮动?

我试图创造一个更好的问题,因为我的其他问题还没有得到很好的接受,所以如果你有任何反馈,也可以帮助。

workbook = xlrd.open_workbook('input.xlsx') data = [] for i in range (0,5): sheet = workbook.sheet_by_index(i) data.append([sheet.cell_value(row, 0) for row in range(sheet.nrows)]) data.append([sheet.cell_value(row, 1) for row in range(sheet.nrows)]) transposed = zip(*data) with open('file.txt','w') as fou: writer = csv.writer(fou, delimiter='\t') for row in transposed: writer.writerow(row) 

输出:

 F800 00 F8C8 32.0 F804 01 F8CC 33.0 F808 02 F8D0 34.0 F80C 03 F8D4 35.0 F810 04 F8D8 36.0 F814 05 F8DC 37.0 F818 06 F8E0 38.0 

期望的输出:

 F800 00 F804 01 F808 02 F80C 03 F810 04 F814 05 F818 06 F81C 07 F8C8 32 F8CC 33 F8D0 34 F8D4 35 F8D8 36 F8DC 37 F8E0 38 

尝试这个:

 data = [[], []] for i in range (0,5): sheet = workbook.sheet_by_index(i) data[0].extend([sheet.cell_value(row, 0) for row in range(sheet.nrows)]) data[1].extend([sheet.cell_value(row, 1) for row in range(sheet.nrows)]) transposed = zip(*data) with open('file.txt','w') as fou: writer = csv.writer(fou, delimiter='\t') for row in transposed: writer.writerow(row) 

data被初始化为包含2个空列表。 列表在for循环中扩展 。 这应该得到正确的输出列数。

对于浮点值问题,Excel将数字数据存储为浮点数(无整数)。 所以在导出之前,您可能需要使用Excel的格式化function来摆脱小数或将数字转换为文本。

希望有所帮助。