python输出多行多列_python中多列的两行输出

该博客介绍了如何使用Python的csv模块将数据格式化并输出到CSV文件,特别是处理包含键值对的数据行。通过将键列表和字典结合,可以确保数据按指定顺序输出。示例代码展示了如何将数据写入标准输出或创建CSV文件。
摘要由CSDN通过智能技术生成

对于将数据发送到Excel,我将使用CSV而不是固定长度的文本格式;这样,如果您的浮点值中需要更重要的数字,那么输出的格式不会改变。此外,您只需在Excel中打开CSV文件;您不必导入它们。并且csv.writer为您处理所有的数据类型转换问题。在

我还将利用(明显的)事实,即每个观察中的第4项似乎是一组键/值对,dict函数可以将其转换为字典。假设您知道所有的键是什么,您可以通过将它们放入一个列表(在下面的代码中称为keys)来指定它们在输出中的显示顺序。然后用列表理解创建一个有序的值列表就很简单了。因此:>>> import sys

>>> import csv

>>> keys = ['cn_01', 'cn_02', 'cn_03', 'cn_04', 'cn_05', 'cn_06']

>>> data = [[59000, 59500, 'chr1', [('cn_04', '1.362352462'), ('cn_01', '1.802001235')]], [100000, 110000, 'chr1', [('cn_03', '1.887268908'), ('cn_02', '1.990457407'), ('cn_01', '4.302275763')]], [63500, 64000, 'chr1', [('cn_03', '1.887268908'), ('cn_02', '1.990457407'), ('cn_01', '4.302275763')]]]

>>> writer = csv.writer(sys.stdout)

>>> writer.writerow(keys + ['start', 'stop', 'chromosome'])

cn_01,cn_02,cn_03,cn_04,cn_05,cn_06,start,stop,chromosome

>>>>for obs in data:

d = dict(obs[3])

row = [d.get(k, None) for k in keys] + obs[0:3]

writer.writerow(row)

1.802001235,,,1.362352462,,,59000,59500,chr1

4.302275763,1.990457407,1.887268908,,,,100000,110000,chr1

4.302275763,1.990457407,1.887268908,,,,63500,64000,chr1

上面的代码将数据写入sys.stdout;要创建一个真正的CSV文件,您可以执行以下操作:

^{pr2}$

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值