Python中二维列表导出为带表头规整表格文件的问题
解决二维数据导出为指定表头表格的问题
看起来你遇到的核心问题是数据维度处理错误——你用zip(*APT)把原数据转置了,导致写入的行和列完全颠倒,这就是输出不符合预期的原因。咱们一步步来修正:
先明确数据对应关系
你的APT列表里,每个子列表就是表格的一行数据:
[10.2,5,6]→ 第一行:APT=10.2,WN=5,WE=6[9.2,-7,8]→ 第二行:APT=9.2,WN=-7,WE=8[5.75,1,2]→ 第三行:APT=5.75,WN=1,WE=2
方法1:用csv模块正确写入
你之前的代码错误地使用了zip(*APT)(这会把原数据的列转成行),只需要直接遍历APT里的每个子列表即可:
import csv APT = [[10.2,5,6],[9.2,-7,8],[5.75,1,2]] headers = ['APT','WN','WE'] with open("file.csv", 'w', newline='') as f: wri = csv.writer(f) wri.writerow(headers) # 写入表头 for row in APT: # 直接遍历每个子列表作为行 wri.writerow(row)
加上newline=''是为了避免Windows系统下写入csv时出现空行。
方法2:用Pandas快速导出
如果用Pandas,你需要把APT直接转换成DataFrame,指定表头后导出,之前的错误应该是没有正确对应数据和列:
import pandas as pd APT = [[10.2,5,6],[9.2,-7,8],[5.75,1,2]] df = pd.DataFrame(APT, columns=['APT','WN','WE']) df.to_excel("file.xlsx", index=False) # index=False去掉自动生成的行号 # 导出csv的话用:df.to_csv("file.csv", index=False)
这里pd.DataFrame(APT, columns=headers)会自动把每个子列表映射为一行,对应指定的列名。
验证结果
导出后打开文件,你会得到预期的三列表格:
| APT | WN | WE |
|---|---|---|
| 10.2 | 5 | 6 |
| 9.2 | -7 | 8 |
| 5.75 | 1 | 2 |
内容的提问来源于stack exchange,提问作者MatMorPau22
相关产品推荐
相关产品推荐

