Hello everyone, thank you in advance for your availability. Unfortunately I can’t figure out how but this library doesn’t work.
I would like to read all the values in an ordered array, so that I can extract my values from the csv.
How could I proceed?
Hi Giulia,
Cant see what the error says here, however if you want to import libraries check out this thread.
@Helmy0001
Thank you for your answer. The library was imported successfully. But as you can see from the example it does not show me the values correctly in the list. I do not understand why.Do I need to enter additional instructions on Dynamo?
Hi,
a few comments
-
if you use the raw string it is not necessary to put the double
\\
-
it is strongly recommended to use the dynamo Python directory to install packages (where the sdtlib is located)
see this page
and
see this topic -
the OUT variable that passes through the dynamo wrapper does not allow displaying a complete dataframe (try to convert to List),
some solutions to watch a dataframe
import sys
import clr
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *
clr.AddReference('Python.Included')
import Python.Included as pyInc
path_py3_lib = pyInc.Installer.EmbeddedPythonHome
sys.path.append(path_py3_lib + r'\Lib\site-packages')
import pandas as pd
d = {'col1': [1, 2, 3], 'col2': [3, 4, 5], 'id' : [1233, 3445, 7786]}
df = pd.DataFrame(data=d)
df = df.set_index('id')
# solution 1 to display in the console
print(df)
#
# solution 2 converting to a string reprensation at OUT variable
OUT = repr(df)
you can also convert to an array (without the index)
import sys
import clr
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *
clr.AddReference('Python.Included')
import Python.Included as pyInc
path_py3_lib = pyInc.Installer.EmbeddedPythonHome
sys.path.append(path_py3_lib + r'\Lib\site-packages')
import pandas as pd
d = {'col1': [1, 2, 3], 'col2': [3, 4, 5], 'id' : [1233, 3445, 7786]}
df = pd.DataFrame(data=d)
df = df.set_index('id')
OUT = df.to_numpy()
Another solution converting dataframe to HTML and display it in a Winform
import sys
import clr
import System
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *
clr.AddReference('Python.Included')
import Python.Included as pyInc
path_py3_lib = pyInc.Installer.EmbeddedPythonHome
sys.path.append(path_py3_lib + r'\Lib\site-packages')
import pandas as pd
clr.AddReference('System.Drawing')
clr.AddReference('System.Windows.Forms')
import System.Drawing
import System.Windows.Forms
from System.Drawing import *
from System.Windows.Forms import *
class Form_df(Form):
def __init__(self, df):
self.df = df
self._html = df.to_html()
self.InitializeComponent()
def InitializeComponent(self):
self._webBrowser1 = System.Windows.Forms.WebBrowser()
self.SuspendLayout()
#
# webBrowser1
#
self._webBrowser1.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right
self._webBrowser1.Dock = System.Windows.Forms.DockStyle.Fill
self._webBrowser1.Location = System.Drawing.Point(0, 0)
self._webBrowser1.MinimumSize = System.Drawing.Size(20, 20)
self._webBrowser1.Name = "webBrowser1"
self._webBrowser1.DocumentText = self._html
self._webBrowser1.Size = System.Drawing.Size(678, 378)
self._webBrowser1.TabIndex = 0
#
# Form_df
#
self.ClientSize = System.Drawing.Size(678, 378)
self.Controls.Add(self._webBrowser1)
self.Name = "Form14"
self.Text = "DataFrame"
self.ResumeLayout(False)
d = {'col1': range(20), 'col2': range(10, 30), 'col3': range(20, 40),'id' : [chr(i) for i in range(65, 85)]}
df = pd.DataFrame(data=d)
df = df.set_index('id')
df['Sum'] = df.iloc[:].sum(axis=1)
a=Form_df(df)
a.Show()