You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python:如何将多组元组数据正确输出为符合要求的CSV文件

解决CSV输出格式异常的问题

问题根源

你的代码错误在于:

  • 把元组转为字符串后传给writerow(),但writerow()要求传入元素序列(比如列表),而非单个字符串。
  • 自定义的dialect用空格作为分隔符,导致字符串被拆分成单个字符,最终出现多余的空格和括号。

方案1:使用csv模块正确实现

不需要自定义dialect,默认CSV格式就是逗号分隔,直接提取元组中的浮点值组成行即可:

import csv

# 示例数据
data2020 = [(-10.6,), (-25.11,), (-18.27,), (13.64,), (3.62,), (6.71,), (3.24,), (2.94,), (2.72,), (2.19,), (8.56,), (2.44,)]
data2021 = [(13.76,), (15.17,), (12.82,), (3.55,), (11.24,), (8.22,), (-1.97,), (-4.96,), (-6.48,), (-2.19,), (-3.6,), (-4.04,)]

with open("out.csv", "w", newline="") as the_file:
    writer = csv.writer(the_file)  # 默认逗号分隔,符合CSV标准
    for month in range(12):
        # 从元组中取出唯一的浮点值,组成一行的两个元素
        row = [data2020[month][0], data2021[month][0]]
        writer.writerow(row)

运行后输出的CSV每行就是你想要的格式:

-10.6,13.76
-25.11,15.17
-18.27,12.82
...

方案2:用Pandas简化操作(更适合结构化数据)

如果数据量较大或需要后续处理,用Pandas可以更高效地完成导出:

import pandas as pd

# 示例数据
data2020 = [(-10.6,), (-25.11,), (-18.27,), (13.64,), (3.62,), (6.71,), (3.24,), (2.94,), (2.72,), (2.19,), (8.56,), (2.44,)]
data2021 = [(13.76,), (15.17,), (12.82,), (3.55,), (11.24,), (8.22,), (-1.97,), (-4.96,), (-6.48,), (-2.19,), (-3.6,), (-4.04,)]

# 转换为DataFrame结构
df = pd.DataFrame({
    "2020": [item[0] for item in data2020],
    "2021": [item[0] for item in data2021]
})

# 导出为CSV,不包含索引列
df.to_csv("out_pandas.csv", index=False)

内容的提问来源于stack exchange,提问作者Carla

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 22:45:53