python - Python csv 列的元组列表
问题描述
我有一个 (x,y) 元组的列表,它们都是它们自己的 x 和 y 列表,如下所示:
[
([44.651162790697676, 44.651162790697676, 44.651162790697676, 44.651162790697676, 44.651162790697676, 44.651162790697676, 44.651162790697676, 44.651162790697676, 44.651162790697676, 44.651162790697676]
, [42.592592592592595, 42.592592592592595, 42.592592592592595, 42.592592592592595, 42.592592592592595, 42.592592592592595, 42.592592592592595, 42.592592592592595, 42.592592592592595, 42.592592592592595])
]
主要思想是在此列表中有多个元组,仅用于示例目的。
我需要将元组中的每个列表放入电子表格列中,为此我使用以下代码:
def saveSpreadsheet(fpath, fname, list):
index = 1
for sublist in list:
with open(os.path.join(fpath, fname + str(index) + '.csv'), 'w', newline='') as myfile:
writer = csv.writer(myfile, delimiter=';')
writer.writerow(("training","test"))
for row in sublist:
writer.writerow(row)
index += 1
该方法获取文件夹路径、文件名和所述列表,并生成 csv。我的问题是它不是保存在列中,而是保存在行中:
假定的输出应如下所示:
我在这里做错了什么?
解决方案
鉴于您的数据:
data = [
(
[44.651162790697676, 44.651162790697676, 44.651162790697676, 44.651162790697676, 44.651162790697676, 44.651162790697676, 44.651162790697676, 44.651162790697676, 44.651162790697676, 44.651162790697676],
[42.592592592592595, 42.592592592592595, 42.592592592592595, 42.592592592592595, 42.592592592592595, 42.592592592592595, 42.592592592592595, 42.592592592592595, 42.592592592592595, 42.592592592592595]
)
]
我们需要将其转换为您可以逐行编写的内容。邮编效果很好:
for a in zip(data[0][0], data[0][1]):
print(a)
导致:
(44.651162790697676, 42.592592592592595)
(44.651162790697676, 42.592592592592595)
(44.651162790697676, 42.592592592592595)
(44.651162790697676, 42.592592592592595)
(44.651162790697676, 42.592592592592595)
(44.651162790697676, 42.592592592592595)
(44.651162790697676, 42.592592592592595)
(44.651162790697676, 42.592592592592595)
(44.651162790697676, 42.592592592592595)
(44.651162790697676, 42.592592592592595)
我认为您可以很好地处理其余部分,并且可以适应这一点。有关更多详细信息,请参阅此类似(重复?)问题:Python: CSV write by column 而不是 row
评论中的建议都提供了很好的建议。如果不能保证列的长度相等,itertools.zip_longest()
那就是要走的路。Pandas 确实提供了更多功能和更好的效率。不过不要过早优化。如果这满足了您的所有需求并且您没有遇到问题,那么您可以摆脱它。Pandas 确实需要一些时间来学习,但从长远来看,如果你会做更多这样的事情,它可能是值得的。
推荐阅读
- python - 将python代码拆分为不同的文件
- javascript - 如何在脚本中添加谷歌标签管理器
- javascript - 如何在全屏点击中关闭模态
- nginx - nginx端口跳转返回错误码502
- sql - 将日期与计算的 DATEADD 日期匹配
- ios - 使用 CMAKE CHECK_FUNCTION_EXISTS 时如何禁用 BITCODE
- javascript - 无法将 EJS 文件呈现为对 POST 请求的响应
- arrays - 排序numpy数组
- django - 如何从 url 字符串中删除目录
- reactjs - React Native:不推荐使用的 Gradle 功能...,使其与 Gradle 7.0 不兼容