为什么这会在第二列中给我一个浮点值并创建两行?
Why is this giving me a float value in the second column and creating two rows?
我的代码打开一个 excel 工作簿并复制工作簿前 4 个工作表的前两行。
使用此代码,如果您引用所需的输出,它会生成 5 个不同的列,我希望它是 2 个不同的列。
我不明白的另一件事是为什么第 3 列和第 4 列是浮点数。为什么它会变成浮点数?
我试图提出一个更好的问题,因为我的其他问题没有得到很好的接受,所以如果您有任何反馈也有帮助。
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 的格式设置功能来去除小数点或将数字转换为文本。
希望对您有所帮助。
我的代码打开一个 excel 工作簿并复制工作簿前 4 个工作表的前两行。
使用此代码,如果您引用所需的输出,它会生成 5 个不同的列,我希望它是 2 个不同的列。
我不明白的另一件事是为什么第 3 列和第 4 列是浮点数。为什么它会变成浮点数?
我试图提出一个更好的问题,因为我的其他问题没有得到很好的接受,所以如果您有任何反馈也有帮助。
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 的格式设置功能来去除小数点或将数字转换为文本。
希望对您有所帮助。