Skip to content

Commit 2a53802

Browse files
committed
Python: add + processing for columns in dataplot
1 parent 9973463 commit 2a53802

File tree

1 file changed

+24
-4
lines changed

1 file changed

+24
-4
lines changed

Utilities/Python/fdsplotlib.py

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,16 @@ def dataplot(config_filename,**kwargs):
6767
plot_range_in = kwargs.get('plot_range')
6868
plot_range = range(plot_range_in[0]-2,plot_range_in[-1]-1)
6969

70+
# Rebuild the default NA strings *excluding* 'N/A'
71+
default_na = {
72+
'', '#N/A', '#N/A N/A', '#NA', '-1.#IND', '-1.#QNAN',
73+
'1.#IND', '1.#QNAN', '<NA>', 'NA', 'NULL', 'NaN',
74+
'n/a', 'nan', 'null'
75+
}
76+
safe_na_values = default_na # 'N/A' intentionally not included
77+
7078
# read the config file
71-
df = pd.read_csv(configdir+config_filename, sep=',', engine='python', comment='#', quotechar='"')
79+
df = pd.read_csv(configdir+config_filename, sep=',', engine='python', comment='#', quotechar='"', na_values=safe_na_values, keep_default_na=False)
7280
C = df.where(pd.notnull(df), None)
7381

7482
Plot_Filename_Last = None
@@ -103,12 +111,17 @@ def dataplot(config_filename,**kwargs):
103111
# read data from exp file
104112
# set header to the row where column names are stored (Python is 0 based)
105113
E = pd.read_csv(expdir+pp.d1_Filename, header=int(pp.d1_Col_Name_Row-1), sep=',', engine='python', comment='#', quotechar='"')
114+
E.columns = E.columns.str.strip() # <-- Strip whitespace from headers
106115

107116
x = E[pp.d1_Ind_Col_Name].values[:].astype(float)
108117
# y = E[pp.d1_Dep_Col_Name].values[:].astype(float)
109118
col_names = [c.strip() for c in pp.d1_Dep_Col_Name.split('|')]
110-
# print(col_names)
111-
y = E[col_names].values.astype(float)
119+
# y = E[col_names].values.astype(float)
120+
y = np.column_stack([
121+
E[cols].astype(float).sum(axis=1) if '+' in name else E[[name]].astype(float).values.ravel()
122+
for name in col_names
123+
for cols in [name.split('+')]
124+
])
112125

113126
styles = [c.strip() for c in pp.d1_Style.split('|')]
114127
key_labels = [c.strip() for c in pp.d1_Key.split('|')]
@@ -147,6 +160,7 @@ def dataplot(config_filename,**kwargs):
147160
# read data from exp file
148161
# set header to the row where column names are stored (Python is 0 based)
149162
E = pd.read_csv(expdir+pp.d1_Filename, header=int(pp.d1_Col_Name_Row-1), sep=',', engine='python', comment='#', quotechar='"')
163+
E.columns = E.columns.str.strip() # <-- Strip whitespace from headers
150164
x = E[pp.d1_Ind_Col_Name].values[:].astype(float)
151165
y = E[pp.d1_Dep_Col_Name].values[:].astype(float)
152166

@@ -164,10 +178,16 @@ def dataplot(config_filename,**kwargs):
164178

165179
# get the model results
166180
M = pd.read_csv(cmpdir+pp.d2_Filename, header=int(pp.d2_Col_Name_Row-1), sep=',', engine='python', comment='#', quotechar='"')
181+
M.columns = M.columns.str.strip() # <-- Strip whitespace from headers
167182
x = M[pp.d2_Ind_Col_Name].values[:].astype(float)
168183
# y = M[pp.d2_Dep_Col_Name].values[:].astype(float)
169184
col_names = [c.strip() for c in pp.d2_Dep_Col_Name.split('|')]
170-
y = M[col_names].values.astype(float)
185+
# y = M[col_names].values.astype(float)
186+
y = np.column_stack([
187+
M[cols].astype(float).sum(axis=1) if '+' in name else M[[name]].astype(float).values.ravel()
188+
for name in col_names
189+
for cols in [name.split('+')]
190+
])
171191

172192
version_string = revision
173193
if (pp.VerStr_Filename):

0 commit comments

Comments
 (0)