2016-04-19 33 views
0

I-Code, der wie folgt aussieht:Erstellen einer Tabelle aus Daten

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 ist eine Liste von Tupeln, also x druckt jedes Tupel, die drei Variablen in ihm hat. Wie würde ich eine Tabelle aus allen gedruckten Anweisungen erstellen? Ich möchte etwas, das drei Spalten und 12 Zeilen ist - die drei Spalten sind die +6 ...- 6 (das sind Stunden vor und nach einer vorherigen Bedingung), x [0] für die gegebene Bedingung und 'gran' für die gegebene Bedingung Bedingung.

+0

Sie müssen einige Beispieldaten hinzufügen und Ihre Ausgaben hinzufügen, und wie Sie möchten, dass diese anders sind. Ansonsten ist es extrem verwirrend für alle außer dir. Wenn Sie sehen, dass Code sich immer wieder wiederholt, wie Ihre if-Anweisungen in diesem Beispiel, gibt es fast immer einen einfacheren Weg, um das zu tun, was auch immer Sie versuchen. – Chris

Antwort

1

Während Ihre Frage nicht so beantwortet werden kann, wie Sie sie haben, möchte ich Ihnen ein Beispiel zeigen, wie Sie Ihren sich wiederholenden Code reduzieren können.

Ersetzen Sie Ihre if-Anweisungen durch etwas ähnliches, um Unordnung zu vermeiden. Es führt die gleichen Funktionen aus, indem es die gleichen paar Codezeilen immer wieder verwendet.

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 
0

Chris macht einen good point auf, wie der Code sollten Sie zeigte organisiert werden.

In Bezug auf Ihre Frage, können Sie eine Liste erstellen:

für jede der „Reihen“ von Daten
data_list = [] 

Dann Sie ein Wörterbuch der daten_liste anhängen soll, wie:

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

Sobald Sie diese Liste haben, können Sie eine Tabelle mit Pandas erstellen:

import pandas 
data_frame = pandas.DataFrame(data_list) 

Sie bei h suchen können Sie Ihre Daten des ead (oben Zeilen) wie folgt:

data_frame 

Wenn Sie eine Probe zeigen, was drin ist rem_dumps (wie print rem_dumps) Ich kann Ihnen einige Arbeitscode geben.

Viel Glück!

Verwandte Themen