king-michael / simulation_database

Apache License 2.0
1 stars 1 forks source link

Last merge request killed pandas #18

Closed andrejberg closed 5 years ago

andrejberg commented 5 years ago

Kein Plan wo das genau herkommt aber pandas geht nicht mehr seit dem merge request. table = get_entry_table(db_path) kann ich zwar aufrufen aber nicht anzeigen. Es kommt ein

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

Der index der pandas DataFrame sieht auch irgendwie merkwürdig aus.

Float64Index([     [1.0, 1.0],      [1.0, 2.0],      [1.0, 3.0],
                   [1.0, 4.0],      [1.0, 5.0],      [1.0, 6.0],
                   [1.0, 7.0],      [1.0, 8.0],      [1.0, 9.0],
                  [2.0, 10.0],
              ...
              [697.0, 5177.0], [697.0, 5178.0], [697.0, 5179.0],
              [697.0, 5180.0], [697.0, 5181.0], [697.0, 5182.0],
              [698.0, 5183.0], [698.0, 5184.0], [698.0, 5185.0],
              [698.0, 5186.0]],
             dtype='float64', name=u'id', length=5187)

@king-michael Hast du ne idee?

king-michael commented 5 years ago

Gratulation, du hast den Sinn eines pull request mit checkliste gefunden :P

Deshalb war das ja nen extra branch das man Dinge testet bevor man es merged. Hab nie getestet ob es mit deinem API geht. Dachte das hast du vor dem merge gemacht...

king-michael commented 5 years ago
172        tags = [and_(Main.keywords.any(name=tag), Main.keywords.any(value=None)) for tag in tags]

Entweder: keywords -> keywords_query

172        tags = [and_(Main.keywords_query.any(name=tag), Main.keywords_query.any(value=None)) for tag in tags]

oder

172        tags = [keyword for keyword in Main.keywords if keyword.value == 'None']
king-michael commented 5 years ago

Main.keywords ist schon aufgeloest, dh du hast schon eine Liste und keinen query

andrejberg commented 5 years ago

das problem ist in

df = pd.read_sql(q.statement, s.bind, index_col="id")

Der rest wird garnicht ausgeführt wenn man die funktion ohne optionen ausführt.

king-michael commented 5 years ago

Hast du mal gecheckt ob der Fehler auch noch vor dem merge commit kommt?

Also ist das Problem von pandas die Änderung im databaseModel?

Sollte ja eigentlich nicht. Pandas greift doch garnicht auf unser Model zu sondern mit read_sql direkt auf die Tables.

king-michael commented 5 years ago

Ah ok, gerade gesehen du nutzt doch unser database model...

andrejberg commented 5 years ago

Das problem ist, dass pandas nicht mehr mit dem Model zurecht kommt. Das einzige was da aufgerufen wird ist:

s = openDatabase(db_path)
q = s.query(Main)
df = pd.read_sql(q.statement, s.bind, index_col="id")

Ich habe noch nicht getested ob es weg ist wenn man die DB neu aufsetzt.

king-michael commented 5 years ago

Sollte nichts ändern! Habe nur etwas an der View von sqlalchemy geändert! Habe ja keine neue Spalte zur Tabelle zugefügt.

king-michael commented 5 years ago

musste .options(noload(Main.keywords)) adden, sonst hat er die Keywords gleich mit aufgefüllt und pandas hat zu komplexe Daten bekommen

andrejberg commented 5 years ago

Danke!