Skip to content
This repository was archived by the owner on Dec 20, 2023. It is now read-only.

Commit ea6dcd9

Browse files
committed
Reduce memory usage when loading nexus plot file
DataFrame was constructed from a list of dicts, using a lot of memory. Constructing frame column by column signifficantly reduces memory usage.
1 parent 0eeb961 commit ea6dcd9

File tree

1 file changed

+10
-8
lines changed

1 file changed

+10
-8
lines changed

python/nex/nex.py

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,16 @@ def load(filename):
1111
"""
1212

1313
raw = _load(filename)
14-
df = pandas.DataFrame([{
15-
'timestep': d.timestep,
16-
'time': d.time,
17-
'classname': d.classname,
18-
'instancename': d.instancename,
19-
'varname': d.varname,
20-
'value': d.value,
21-
} for d in raw._data])
14+
D = raw._data
15+
df = pandas.DataFrame()
16+
17+
df['timestep'] = [d.timestep for d in D]
18+
df['time'] = [d.time for d in D]
19+
df['classname'] = [d.classname for d in D]
20+
df['instancename'] = [d.instancename for d in D]
21+
df['varname'] = [d.varname for d in D]
22+
df['value'] = [d.value for d in D]
23+
2224
df.start_date = datetime.datetime(
2325
year=raw._header.year,
2426
month=raw._header.month,

0 commit comments

Comments
 (0)