从数据创建表

时间:2016-04-19 13:08:32

标签: python arrays

我的代码如下:

for x in rem_dups:

    gran = str(x[2])[-4:]

    if str(x[0])[0] == '1':
        print "+1: ", x[0], gran

    if str(x[0])[0] == '2':
        print "+2: ", x[0], gran

    if str(x[0])[0] == '3':
        print "+3: ", x[0], gran

    if str(x[0])[0] == '4':
        print "+4: ", x[0], gran

    if str(x[0])[0] == '5':
        print "+5: ", x[0], gran

    if str(x[0])[0] == '6' :
        print "+6: ", x[0], gran

    if str(x[0])[0:2] == '-1' :
        print "-1: ", x[0], gran

    if str(x[0])[0:2] == '-2' :
        print "-2: ", x[0], gran

    if str(x[0])[0:2] == '-3' :
        print "-3: ", x[0], gran

    if str(x[0])[0:2] == '-4' :
        print "-4: ", x[0], gran

    if str(x[0])[0:2] == '-5' :
        print "-5: ", x[0], gran

    if str(x[0])[0:2] == '-6' :
        print "-6: ", x[0], gran

rem_dups是一个元组列表,因此x打印出每个元组中包含三个变量的元组。如何从所有打印的语句中创建表格?我想要三列12行的东西 - 三列是+6 ...... - 6(这些是先前条件之前和之后的小时),给定条件的x [0]和给定条件的'gran'条件。

2 个答案:

答案 0 :(得分:1)

虽然您的问题无法以您的方式回答,但我想向您展示如何减少重复代码的示例。

用类似的东西替换你的if语句可能有助于减少混乱。它通过反复使用相同的几行代码来执行相同的功能。

for i in range(1,6):
    if str(x[0])[0] == i:
        print "+" + i + ": ", x[0], gran

    if str(x[0])[0:2] == -i:
        print "-" + i + ": ", x[0], gran

答案 1 :(得分:0)

Chris对您展示的代码应该如何组织good point

关于您的问题,您可以创建一个列表:

data_list = []

然后对于每个"行"对于数据,您应该将字典附加到data_list,如:

data_list.append({'lag_hours':"+" + i, 'condition':x[0], 'other_thing':gran})

获得此列表后,您可以使用pandas创建表:

import pandas
data_frame = pandas.DataFrame(data_list)

您可以像这样查看数据的头部(顶行):

data_frame

如果您展示了rem_dumps内部的样本(例如print rem_dumps),我可以为您提供一些正常工作的代码。

祝你好运!