微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python-创建表格

如何解决Python-创建表格

| 我是非常早期的python用户我有两个数据集,分别是从1850年到2010年某个特定位置的温度,整个期间每个月的温度值。我正在尝试使用以下给定格式的这些值创建一个表。 T是我的数据。
year data JAn FEB MAR APR MAY JUN JUL AUG SEP .......DEC.
1850 data1 t   t   t   t   t   t   t   t   t          t.
     data2 t   t   t   t   t   t   t   t   t          t.
\'.
\'.
\'.
2010 data1 t   t   t   t   t   t   t   t  t           t.
对不起,我无法张贴一张我需要的桌子的图片。我不允许张贴图片。而且我无法指定我需要的桌子的形状。 因此,我发布了另一个示例表的链接。 它是另一个数据集。但今年我需要排两行。一个用于我的数据1,另一个用于我的数据2。 现在我所拥有的是完整的一系列数据,范围从1850年到2010年。我想将上述给定格式的两个数据集重写为表格。从数据中我每年分割了data1和data 2。我知道这是通过Office软件包轻松完成的工作,但是我知道这不是编程的方式。请有人帮我做。 这就是我现在所拥有的。
data1 = [t,t,..............................t]
data2 = [t,..............................t]

#This data1 and data2 is the list of data for the entire period from 1850-2010
#I sliced this data as
n = len(data1)
data1_yearly = [data1[i:i+12] for i in xrange(0,n,12)]
data2_yearly = [data2[i:i+12] for i in xrange(0,12)]
现在我有了每年切片的data1和data2的值。 data1_yearly [0]为我提供了1850年的数据值,进一步的索引编制将为我提供所有期间的数据。 所以从这里开始我的问题。 如何以上面指定的格式将这些数据写为表。我是该语言的新手,所以请不要将此请求视为愚蠢的请求,请客气。     

解决方法

我建议您看看字符串模板 例:
>>> from string import Template
>>> s = Template(\'$who likes $what\')
>>> s.substitute(who=\'tim\',what=\'kung pao\')
\'tim likes kung pao\'
>>> d = dict(who=\'tim\')
>>> Template(\'Give $who $100\').substitute(d)
Traceback (most recent call last):
[...]
ValueError: Invalid placeholder in string: line 1,col 10
>>> Template(\'$who likes $what\').substitute(d)
Traceback (most recent call last):
[...]
KeyError: \'what\'
>>> Template(\'$who likes $what\').safe_substitute(d)
\'tim likes $what\'
如果您创建目标格式的字符串模板,然后将数据如上所述放置在字典中,则转换应该很容易。 也就是说,如果我正确解释了您的问题,即您想将一个漂亮的表打印到标准输出...     ,要将以上数据打印到表中,我建议使用一些字符串格式的简单循环:
print \"\\t\".join([\'year\',\'data\',\'Jan\',\'FEB\',\'MAR\',\'APR\',\'MAY\',\'JUN\',\'JUL\',\'AUG\',\'SEP\',\'OCT\',\'NOV\',\'DEZ\'])
theYearOffset = 1850
for theYearCounter in range(len(data1_yearly)):
    print \"%s\\t%s\\t%s\\n\\t%s\\t%s\" % ((theYearOffset + theYearCounter),\'data1\',\"\\t\".join([\"%.2f\" % theValue for theValue in data1_yearly[theYearCounter]]),\'data2\',\"\\t\".join([\"%.2f\" % theValue for theValue in data2_yearly[theYearCounter]]))
这不是最漂亮的代码,但可以完成工作。列之间用制表符分隔,浮点数四舍五入为两位数。 这是一些愚蠢的测试数据的输出: 测试数据:
data1 = [1.1233,2,3,4,5,6,7,8,9,10,11,1,11]
data2 = [8,12,13,14,15,4]
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。