Skip to content
Snippets Groups Projects

FIX: `to_table` failed on lists

Merged Daniel Hornung requested to merge f-fix-table-converter-list into dev
All threads resolved!
Files
3
@@ -25,6 +25,7 @@ import re
import sys
import caosdb as db
import numpy as np
import pandas as pd
@@ -58,15 +59,20 @@ def to_table(container):
properties.update([generate_property_name(p)
for p in container[0].get_properties()])
df = pd.DataFrame(columns=list(properties))
rts = set([p.name for p in container[0].parents])
rts = {p.name for p in container[0].parents}
for ii, rec in enumerate(container):
if set([p.name for p in rec.parents]) != rts:
if {p.name for p in rec.parents} != rts:
raise ValueError("Parents differ")
for p in rec.get_properties():
df.loc[ii, generate_property_name(p)] = p.value
for prop in rec.get_properties():
propname = generate_property_name(prop)
if isinstance(prop.value, list):
if propname not in df:
df[propname] = pd.Series(dtype=object)
elif df[propname].dtype != object:
df[propname] = df[propname].astype(object)
df.at[ii, propname] = prop.value
return df
Loading