Page 1 of 1

Python-basierter Design von Experimenten, die auf Excel Sheet angewendet werden

Posted: 14 Feb 2025, 03:34
by Guest
Ändern der Werte eines Excel -Blattes, das Formeln enthält, und die Betrachtung der Variationen eines Ergebnisse Viele Formeln im Inneren.
Das Design von Experimenten (typischerweise lateinische Hypercube-Stichproben), ich möchte einfach ein DOE erstellen (einfach gibt es viele gute R /Python-Pakete dafür), deren Kombinationen werden automatisch in der guten Zelle im Blatt eingegeben und behalten die entsprechende Ausgabe bei. < /p>
Ein typischer Pseudo-Code wäre: < /p>

Code: Select all

X = DOE(n samples, d vairables)
y = zeros(n,)
for i = 1:n
Change the adequate cells as x[i,1], ..., x[i,d]
Look at the cell containing the output and affect its value y[i]
end
< /code>
Ich habe zuerst versucht, df = pd.read_excel zu verwenden, die entsprechenden Zellen von DF zu ändern, und dann df.to_excel, aber das [url=viewtopic.php?t=11587]Problem[/url] ist beim Laden der DF, die "Ausgangszelle" enthält eine numerische Wert, der während des TO_EXCEL -Schritts zurückgeschrieben wird (also keine Formel mehr, der Wert ist falsch). Mit einem numerischen Wert ... < /p>
Diesmal kann ich es gelegen, eine Zelle zu ändern und die (geänderten) Parameter und das modifizierte Ergebnis in Excel zu visualisieren. Ich bin also ziemlich glücklich ... außer dass Python, wenn ich versuche, das Ergebnis zu lesen, bei der Verwendung von pd.read_excel Nan ist oder bei der Verwendung von OpenPyxl nichts zurückgibt, obwohl ich visuell sehe, dass die Zelle (die gute) Nummer enthält. p>
Hier ist mein Code, in der Hoffnung, dass Sie mir helfen können < /p>
wb = load_workbook(file_path, data_only=False)
ws = wb[sheet_name]
ws['C3'] = 6500
wb.save("modified_file.xlsx")
# Visually, modified_file contains the modified value, and accordingly, my target cell, N32 has changed too!
# Ok great... let's store cell N32 of modified_file.xlsx as y[i] now!
wb_modif = load_workbook("modified_file.xlsx", data_only=True)
ws_modif = wb_modif[sheet_name]
ws_modif['N32'].value # output nothing (None if I store it in a variable), despite N32 has value 3189 in excel
Natürlich habe ich versucht, data_only = false und dann WS_MODIF ['n32'] die Formel von Cell N32 zurückgegeben; und bei der Verwendung von pd.read_excel in der folgenden Weise ist die Ausgabe keine (viele NANs werden beim Laden der geänderten Datei mit pd.read_excel )
angezeigtpd.read_excel("modified_file.xlsx", sheet_name=sheet_name, header=None).at[31,13] # attempt to see N32's value --> nan
< /code>
Also ... wenn Sie zufällig eine Vorstellung davon haben, was ich tun sollte, wäre ich sehr dankbar! Vielen Dank im Voraus für Ihr Feedback