the python books are obtained by running the following script:

bash << 'EOF'
current_date_time=$(date +"%Y-%m-%d %H:%M:%S")
output=$(ls /home/chris-jakoolit/christopherpaine_org/_code/bayesian-pca/*.ipynb)
output=$'this command was run on '"${current_date_time}"$':\n------------------------\n'"${output}"
output=$'```\n'"${output}"$'\n```'
echo "$output"
echo "$output" | wl-copy
EOF
this command was run on 2026-03-16 13:55:20:
------------------------
/home/chris-jakoolit/christopherpaine_org/_code/bayesian-pca/lets-go-baby.ipynb
/home/chris-jakoolit/christopherpaine_org/_code/bayesian-pca/PCA_Spot_Yields.ipynb
/home/chris-jakoolit/christopherpaine_org/_code/bayesian-pca/scratchpad.ipynb
/home/chris-jakoolit/christopherpaine_org/_code/bayesian-pca/Untitled.ipynb

scratchpad.ipynb


{
 &quot;cells&quot;: [
  {
   &quot;cell_type&quot;: &quot;markdown&quot;,
   &quot;id&quot;: &quot;96d34c17-0a1d-44f7-baff-b7e016aacfbe&quot;,
   &quot;metadata&quot;: {},
   &quot;source&quot;: [
    &quot;# Getting Raw Data into Dataframes\n&quot;
   ]
  },
  {
   &quot;cell_type&quot;: &quot;code&quot;,
   &quot;execution_count&quot;: 21,
   &quot;id&quot;: &quot;affa3aab-495d-4dc6-aa5d-4856527174ab&quot;,
   &quot;metadata&quot;: {},
   &quot;outputs&quot;: [],
   &quot;source&quot;: [
    &quot;from IPython.display import display, Markdown, HTML\n&quot;,
    &quot;import numpy as np&quot;
   ]
  },
  {
   &quot;cell_type&quot;: &quot;markdown&quot;,
   &quot;id&quot;: &quot;2d5e9fc9-a976-4f82-884a-7d45a498262a&quot;,
   &quot;metadata&quot;: {},
   &quot;source&quot;: [
    &quot;## Import Spot Yield Data and Perform Basic Reasonableness Check&quot;
   ]
  },
  {
   &quot;cell_type&quot;: &quot;code&quot;,
   &quot;execution_count&quot;: 2,
   &quot;id&quot;: &quot;71e1ae0a-efdf-4d40-a09f-667ef726aaa6&quot;,
   &quot;metadata&quot;: {},
   &quot;outputs&quot;: [],
   &quot;source&quot;: [
    &quot;import pandas as pd\n&quot;,
    &quot;\n&quot;,
    &quot;#load in first spreadsheet to df1\n&quot;,
    &quot;df1 = pd.read_excel(\&quot;GLC Nominal month end data_1970 to 2015.xlsx\&quot;,sheet_name=\&quot;4. spot curve\&quot;,engine=\&quot;openpyxl\&quot;,skiprows=5,header=None)\n&quot;,
    &quot;#create an appropriate set of headers\n&quot;,
    &quot;col_names=pd.read_excel(\&quot;GLC Nominal month end data_1970 to 2015.xlsx\&quot;,sheet_name=\&quot;4. spot curve\&quot;,engine=\&quot;openpyxl\&quot;,skiprows=3,nrows=1,header=None)\n&quot;,
    &quot;col_names[0]=\&quot;Date\&quot;\n&quot;,
    &quot;df1.columns = col_names.iloc[0] \n&quot;,
    &quot;#load in second spreadsheet to df2\n&quot;,
    &quot;df2 = pd.read_excel(\&quot;GLC Nominal month end data_2016 to present.xlsx\&quot;,sheet_name=\&quot;4. spot curve\&quot;,engine=\&quot;openpyxl\&quot;,skiprows=5,header=None)\n&quot;,
    &quot;#create an appropriate set of headers\n&quot;,
    &quot;col_names2=pd.read_excel(\&quot;GLC Nominal month end data_2016 to present.xlsx\&quot;,sheet_name=\&quot;4. spot curve\&quot;,engine=\&quot;openpyxl\&quot;,skiprows=3,nrows=1,header=None)\n&quot;,
    &quot;col_names2[0]=\&quot;Date\&quot;\n&quot;,
    &quot;df2.columns = col_names2.iloc[0]&quot;
   ]
  },
  {
   &quot;cell_type&quot;: &quot;code&quot;,
   &quot;execution_count&quot;: 3,
   &quot;id&quot;: &quot;3df351e1-1722-4a86-b6e2-1b7e5b7904a8&quot;,
   &quot;metadata&quot;: {},
   &quot;outputs&quot;: [
    {
     &quot;name&quot;: &quot;stdout&quot;,
     &quot;output_type&quot;: &quot;stream&quot;,
     &quot;text&quot;: [
      &quot;The length of combined dataframe is 660 rows\n&quot;
     ]
    }
   ],
   &quot;source&quot;: [
    &quot;#join the two dataframes to create df\n&quot;,
    &quot;df = pd.concat([df1, df2], ignore_index=True)\n&quot;,
    &quot;print(\&quot;The length of combined dataframe is \&quot;+str(len(df))+\&quot; rows\&quot;)&quot;
   ]
  },
  {
   &quot;cell_type&quot;: &quot;code&quot;,
   &quot;execution_count&quot;: 4,
   &quot;id&quot;: &quot;5f4d3d71-0b21-4aab-afad-fd42bd074527&quot;,
   &quot;metadata&quot;: {},
   &quot;outputs&quot;: [
    {
     &quot;data&quot;: {
      &quot;text/markdown&quot;: [
       &quot;**Checking Dataframe 1 -  1970 to 2015**&quot;
      ],
      &quot;text/plain&quot;: [
       &quot;&lt;IPython.core.display.Markdown object&gt;&quot;
      ]
     },
     &quot;metadata&quot;: {},
     &quot;output_type&quot;: &quot;display_data&quot;
    },
    {
     &quot;name&quot;: &quot;stdout&quot;,
     &quot;output_type&quot;: &quot;stream&quot;,
     &quot;text&quot;: [
      &quot;the first dates is 1970-01-31 and the last is 2015-12-31\n&quot;,
      &quot;one would therefore expect 12 x 46yrs = 552 entries\n&quot;,
      &quot;and indeed we see the number of rows in df is 552\n&quot;
     ]
    }
   ],
   &quot;source&quot;: [
    &quot;#producing some sense checks\n&quot;,
    &quot;display(Markdown(\&quot;**Checking Dataframe 1 -  1970 to 2015**\&quot;)) \n&quot;,
    &quot;print(\&quot;the first dates is \&quot;+ str(df.iloc[0,0].strftime(&#39;%Y-%m-%d&#39;))+\&quot; and the last is \&quot; +str(df.iloc[551,0].strftime(&#39;%Y-%m-%d&#39;) ))\n&quot;,
    &quot;print(\&quot;one would therefore expect 12 x 46yrs = 552 entries\&quot;)\n&quot;,
    &quot;print(\&quot;and indeed we see the number of rows in df is \&quot;+str(len(df1)))&quot;
   ]
  },
  {
   &quot;cell_type&quot;: &quot;code&quot;,
   &quot;execution_count&quot;: 5,
   &quot;id&quot;: &quot;f55dcde1-6fb3-488b-bdc6-d91773e78b18&quot;,
   &quot;metadata&quot;: {},
   &quot;outputs&quot;: [
    {
     &quot;data&quot;: {
      &quot;text/markdown&quot;: [
       &quot;**Checking Dataframe 2 -  2015 to present**&quot;
      ],
      &quot;text/plain&quot;: [
       &quot;&lt;IPython.core.display.Markdown object&gt;&quot;
      ]
     },
     &quot;metadata&quot;: {},
     &quot;output_type&quot;: &quot;display_data&quot;
    },
    {
     &quot;name&quot;: &quot;stdout&quot;,
     &quot;output_type&quot;: &quot;stream&quot;,
     &quot;text&quot;: [
      &quot;the first dates is 2016-01-31 and the last is 2024-12-31\n&quot;,
      &quot;one would therefore expect 12 x 9yrs = 108 entries\n&quot;,
      &quot;and indeed we see the number of rows in df is 108\n&quot;
     ]
    }
   ],
   &quot;source&quot;: [
    &quot;display(Markdown(\&quot;**Checking Dataframe 2 -  2015 to present**\&quot;)) \n&quot;,
    &quot;print(\&quot;the first dates is \&quot;+ str(df.iloc[552,0].strftime(&#39;%Y-%m-%d&#39;))+\&quot; and the last is \&quot; +str(df.iloc[659,0].strftime(&#39;%Y-%m-%d&#39;) ))\n&quot;,
    &quot;print(\&quot;one would therefore expect 12 x 9yrs = 108 entries\&quot;)\n&quot;,
    &quot;print(\&quot;and indeed we see the number of rows in df is \&quot;+str(len(df2)))&quot;
   ]
  },
  {
   &quot;cell_type&quot;: &quot;code&quot;,
   &quot;execution_count&quot;: 18,
   &quot;id&quot;: &quot;20129d73-6936-4e79-b2b9-85a56a5cce17&quot;,
   &quot;metadata&quot;: {},
   &quot;outputs&quot;: [
    {
     &quot;data&quot;: {
      &quot;text/markdown&quot;: [
       &quot;**sum of values check**&quot;
      ],
      &quot;text/plain&quot;: [
       &quot;&lt;IPython.core.display.Markdown object&gt;&quot;
      ]
     },
     &quot;metadata&quot;: {},
     &quot;output_type&quot;: &quot;display_data&quot;
    },
    {
     &quot;name&quot;: &quot;stdout&quot;,
     &quot;output_type&quot;: &quot;stream&quot;,
     &quot;text&quot;: [
      &quot;manual inspection of the sum of all values in first spreadsheet is 191503.172322029\n&quot;,
      &quot;the sume of 1st dataframe is also 191503.17232202887\n&quot;
     ]
    },
    {
     &quot;data&quot;: {
      &quot;text/html&quot;: [
       &quot;&lt;span style=&#39;color:red;&#39;&gt;the very minor differences are because ....&lt;/span&gt;&quot;
      ],
      &quot;text/plain&quot;: [
       &quot;&lt;IPython.core.display.HTML object&gt;&quot;
      ]
     },
     &quot;metadata&quot;: {},
     &quot;output_type&quot;: &quot;display_data&quot;
    },
    {
     &quot;name&quot;: &quot;stdout&quot;,
     &quot;output_type&quot;: &quot;stream&quot;,
     &quot;text&quot;: [
      &quot;the sum of all values in second spreadsheet is 17844.9993308767\n&quot;,
      &quot;the sume of 1st dataframe is also 17844.999330876683\n&quot;
     ]
    },
    {
     &quot;data&quot;: {
      &quot;text/html&quot;: [
       &quot;&lt;span style=&#39;color:red;&#39;&gt;the very minor differences are because ....&lt;/span&gt;&quot;
      ],
      &quot;text/plain&quot;: [
       &quot;&lt;IPython.core.display.HTML object&gt;&quot;
      ]
     },
     &quot;metadata&quot;: {},
     &quot;output_type&quot;: &quot;display_data&quot;
    },
    {
     &quot;name&quot;: &quot;stdout&quot;,
     &quot;output_type&quot;: &quot;stream&quot;,
     &quot;text&quot;: [
      &quot;the sum of combined dataframe is  209348.17165290558\n&quot;,
      &quot;and the sum of the manually observed 191503.172322029 + 17844.9993308767 = 209348.1716529057\n&quot;
     ]
    }
   ],
   &quot;source&quot;: [
    &quot;display(Markdown(\&quot;**sum of values check**\&quot;)) \n&quot;,
    &quot;print(\&quot;manual inspection of the sum of all values in first spreadsheet is 191503.172322029\&quot;)\n&quot;,
    &quot;print(\&quot;the sume of 1st dataframe is also \&quot; + str(df1.iloc[:, 1:].sum().sum()))\n&quot;,
    &quot;display(HTML(\&quot;&lt;span style=&#39;color:red;&#39;&gt;the very minor differences are because ....&lt;/span&gt;\&quot;))\n&quot;,
    &quot;print(\&quot;the sum of all values in second spreadsheet is 17844.9993308767\&quot;)\n&quot;,
    &quot;print(\&quot;the sume of 1st dataframe is also \&quot; + str(df2.iloc[:, 1:].sum().sum()))\n&quot;,
    &quot;display(HTML(\&quot;&lt;span style=&#39;color:red;&#39;&gt;the very minor differences are because ....&lt;/span&gt;\&quot;))\n&quot;,
    &quot;print(\&quot;the sum of combined dataframe is  \&quot; + str(df.iloc[:, 1:].sum().sum()))\n&quot;,
    &quot;combined_total = 191503.172322029 + 17844.9993308767\n&quot;,
    &quot;print(\&quot;and the sum of the manually observed 191503.172322029 + 17844.9993308767 = \&quot; + str(combined_total))&quot;
   ]
  },
  {
   &quot;cell_type&quot;: &quot;markdown&quot;,
   &quot;id&quot;: &quot;b87e47b9-6475-46af-9eb8-7ddcfb988bf9&quot;,
   &quot;metadata&quot;: {},
   &quot;source&quot;: [
    &quot;## Calculate Spot Yield Differences&quot;
   ]
  },
  {
   &quot;cell_type&quot;: &quot;code&quot;,
   &quot;execution_count&quot;: null,
   &quot;id&quot;: &quot;b123635b-fdde-4f86-9a41-51b605fe0b95&quot;,
   &quot;metadata&quot;: {},
   &quot;outputs&quot;: [],
   &quot;source&quot;: [
    &quot;# using np.log on the dataframe generates errors which is often the case when importing from an excel csv and we having this like values in quotes and blank spaces\n&quot;,
    &quot;# we only want to apply np.log to the numerical values so we have to temporarily drop the years column\n&quot;,
    &quot;df_numeric = df.drop(columns=&#39;Date&#39;, errors=&#39;ignore&#39;)\n&quot;,
    &quot;# coerce changes non numeric values to something appropriate\n&quot;,
    &quot;df_converted = df_numeric.apply(pd.to_numeric, errors=&#39;coerce&#39;)\n&quot;,
    &quot;mask_problem = df_numeric.ne(df_converted)  # where values differ (non-convertible)\n&quot;,
    &quot;filtered = df_numeric[mask_problem]&quot;
   ]
  },
  {
   &quot;cell_type&quot;: &quot;code&quot;,
   &quot;execution_count&quot;: null,
   &quot;id&quot;: &quot;742c7f47-5aa7-43eb-995f-fef7a9483936&quot;,
   &quot;metadata&quot;: {},
   &quot;outputs&quot;: [],
   &quot;source&quot;: [
    &quot;print(filtered.index)\n&quot;,
    &quot;print(df_numeric.index)\n&quot;
   ]
  },
  {
   &quot;cell_type&quot;: &quot;code&quot;,
   &quot;execution_count&quot;: 27,
   &quot;id&quot;: &quot;8d4ea54b-53d2-42cd-8a90-b7f638e7f8ea&quot;,
   &quot;metadata&quot;: {},
   &quot;outputs&quot;: [
    {
     &quot;data&quot;: {
      &quot;text/plain&quot;: [
       &quot;np.float64(209348.17165290558)&quot;
      ]
     },
     &quot;execution_count&quot;: 27,
     &quot;metadata&quot;: {},
     &quot;output_type&quot;: &quot;execute_result&quot;
    }
   ],
   &quot;source&quot;: [
    &quot;df.iloc[:,1:].sum().sum()&quot;
   ]
  },
  {
   &quot;cell_type&quot;: &quot;code&quot;,
   &quot;execution_count&quot;: 37,
   &quot;id&quot;: &quot;fab0cfbe-bdb0-4cb6-be7e-cd4760f0662c&quot;,
   &quot;metadata&quot;: {
    &quot;scrolled&quot;: true
   },
   &quot;outputs&quot;: [
    {
     &quot;name&quot;: &quot;stderr&quot;,
     &quot;output_type&quot;: &quot;stream&quot;,
     &quot;text&quot;: [
      &quot;/nix/store/grz7lgv2i6x8335n1pfl38x906vc2iby-python3-3.12.10-env/lib/python3.12/site-packages/pandas/core/internals/blocks.py:393: RuntimeWarning: invalid value encountered in log\n&quot;,
      &quot;  result = func(self.values, **kwargs)\n&quot;
     ]
    },
    {
     &quot;data&quot;: {
      &quot;text/html&quot;: [
       &quot;&lt;div&gt;\n&quot;,
       &quot;&lt;style scoped&gt;\n&quot;,
       &quot;    .dataframe tbody tr th:only-of-type {\n&quot;,
       &quot;        vertical-align: middle;\n&quot;,
       &quot;    }\n&quot;,
       &quot;\n&quot;,
       &quot;    .dataframe tbody tr th {\n&quot;,
       &quot;        vertical-align: top;\n&quot;,
       &quot;    }\n&quot;,
       &quot;\n&quot;,
       &quot;    .dataframe thead th {\n&quot;,
       &quot;        text-align: right;\n&quot;,
       &quot;    }\n&quot;,
       &quot;&lt;/style&gt;\n&quot;,
       &quot;&lt;table border=\&quot;1\&quot; class=\&quot;dataframe\&quot;&gt;\n&quot;,
       &quot;  &lt;thead&gt;\n&quot;,
       &quot;    &lt;tr style=\&quot;text-align: right;\&quot;&gt;\n&quot;,
       &quot;      &lt;th&gt;&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;0.5&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;1.0&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;1.5&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;2.0&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;2.5&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;3.0&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;3.5&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;4.0&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;4.5&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;5.0&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;...&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;35.5&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;36.0&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;36.5&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;37.0&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;37.5&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;38.0&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;38.5&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;39.0&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;39.5&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;40.0&lt;/th&gt;\n&quot;,
       &quot;    &lt;/tr&gt;\n&quot;,
       &quot;  &lt;/thead&gt;\n&quot;,
       &quot;  &lt;tbody&gt;\n&quot;,
       &quot;    &lt;tr&gt;\n&quot;,
       &quot;      &lt;th&gt;0&lt;/th&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.155865&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.164177&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.163407&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.159182&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.153934&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.148557&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.143398&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.138608&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.134239&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;    &lt;/tr&gt;\n&quot;,
       &quot;    &lt;tr&gt;\n&quot;,
       &quot;      &lt;th&gt;1&lt;/th&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.129794&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.127907&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.124743&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.120779&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.116447&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.112078&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.107884&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.103977&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.100422&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;    &lt;/tr&gt;\n&quot;,
       &quot;    &lt;tr&gt;\n&quot;,
       &quot;      &lt;th&gt;2&lt;/th&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.046943&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.051911&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.053485&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.053239&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.052194&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.050950&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.049814&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.048926&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.048347&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;    &lt;/tr&gt;\n&quot;,
       &quot;    &lt;tr&gt;\n&quot;,
       &quot;      &lt;th&gt;3&lt;/th&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.029005&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.062340&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.076126&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.079747&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.078543&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.075374&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.071704&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.068308&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.065603&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;    &lt;/tr&gt;\n&quot;,
       &quot;    &lt;tr&gt;\n&quot;,
       &quot;      &lt;th&gt;4&lt;/th&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.000277&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.045864&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.062064&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.064012&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.059325&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.051845&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.043562&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.035601&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.028615&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;    &lt;/tr&gt;\n&quot;,
       &quot;    &lt;tr&gt;\n&quot;,
       &quot;      &lt;th&gt;...&lt;/th&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;    &lt;/tr&gt;\n&quot;,
       &quot;    &lt;tr&gt;\n&quot;,
       &quot;      &lt;th&gt;655&lt;/th&gt;\n&quot;,
       &quot;      &lt;td&gt;1.455826&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.439353&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.402119&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.375484&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.356925&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.343494&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.333993&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.327756&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.324277&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.323134&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.499410&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.497142&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.494746&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.492218&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.489558&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.486763&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.483831&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.480760&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.477550&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.474197&lt;/td&gt;\n&quot;,
       &quot;    &lt;/tr&gt;\n&quot;,
       &quot;    &lt;tr&gt;\n&quot;,
       &quot;      &lt;th&gt;656&lt;/th&gt;\n&quot;,
       &quot;      &lt;td&gt;1.477274&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.425788&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.376319&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.346838&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.329441&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.319028&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.313292&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.310951&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.311175&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.313381&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.515755&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.513311&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.510736&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.508030&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.505189&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.502213&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.499099&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.495847&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.492453&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.488918&lt;/td&gt;\n&quot;,
       &quot;    &lt;/tr&gt;\n&quot;,
       &quot;    &lt;tr&gt;\n&quot;,
       &quot;      &lt;th&gt;657&lt;/th&gt;\n&quot;,
       &quot;      &lt;td&gt;1.509063&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.479084&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.457223&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.445040&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.436732&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.430826&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.427094&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.425345&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.425352&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.426876&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.562482&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.559861&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.557129&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.554288&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.551334&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.548267&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.545084&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.541785&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.538368&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.534832&lt;/td&gt;\n&quot;,
       &quot;    &lt;/tr&gt;\n&quot;,
       &quot;    &lt;tr&gt;\n&quot;,
       &quot;      &lt;th&gt;658&lt;/th&gt;\n&quot;,
       &quot;      &lt;td&gt;1.480481&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.439974&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.416794&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.403691&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.394121&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.386840&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.381801&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.378954&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.378166&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.379234&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.543082&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.540410&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.537605&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.534664&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.531586&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.528368&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.525007&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.521501&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.517847&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.514042&lt;/td&gt;\n&quot;,
       &quot;    &lt;/tr&gt;\n&quot;,
       &quot;    &lt;tr&gt;\n&quot;,
       &quot;      &lt;th&gt;659&lt;/th&gt;\n&quot;,
       &quot;      &lt;td&gt;1.494679&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.460397&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.441731&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.434688&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.431337&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.429968&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.430298&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.432190&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.435510&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.440097&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.617167&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.614502&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.611717&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.608811&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.605781&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.602625&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.599343&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.595930&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.592387&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.588710&lt;/td&gt;\n&quot;,
       &quot;    &lt;/tr&gt;\n&quot;,
       &quot;  &lt;/tbody&gt;\n&quot;,
       &quot;&lt;/table&gt;\n&quot;,
       &quot;&lt;p&gt;660 rows × 80 columns&lt;/p&gt;\n&quot;,
       &quot;&lt;/div&gt;&quot;
      ],
      &quot;text/plain&quot;: [
       &quot;0        0.5       1.0       1.5       2.0       2.5       3.0       3.5   \\\n&quot;,
       &quot;0         NaN  2.155865  2.164177  2.163407  2.159182  2.153934  2.148557   \n&quot;,
       &quot;1         NaN  2.129794  2.127907  2.124743  2.120779  2.116447  2.112078   \n&quot;,
       &quot;2         NaN  2.046943  2.051911  2.053485  2.053239  2.052194  2.050950   \n&quot;,
       &quot;3         NaN  2.029005  2.062340  2.076126  2.079747  2.078543  2.075374   \n&quot;,
       &quot;4         NaN  2.000277  2.045864  2.062064  2.064012  2.059325  2.051845   \n&quot;,
       &quot;..        ...       ...       ...       ...       ...       ...       ...   \n&quot;,
       &quot;655  1.455826  1.439353  1.402119  1.375484  1.356925  1.343494  1.333993   \n&quot;,
       &quot;656  1.477274  1.425788  1.376319  1.346838  1.329441  1.319028  1.313292   \n&quot;,
       &quot;657  1.509063  1.479084  1.457223  1.445040  1.436732  1.430826  1.427094   \n&quot;,
       &quot;658  1.480481  1.439974  1.416794  1.403691  1.394121  1.386840  1.381801   \n&quot;,
       &quot;659  1.494679  1.460397  1.441731  1.434688  1.431337  1.429968  1.430298   \n&quot;,
       &quot;\n&quot;,
       &quot;0        4.0       4.5       5.0   ...      35.5      36.0      36.5  \\\n&quot;,
       &quot;0    2.143398  2.138608  2.134239  ...       NaN       NaN       NaN   \n&quot;,
       &quot;1    2.107884  2.103977  2.100422  ...       NaN       NaN       NaN   \n&quot;,
       &quot;2    2.049814  2.048926  2.048347  ...       NaN       NaN       NaN   \n&quot;,
       &quot;3    2.071704  2.068308  2.065603  ...       NaN       NaN       NaN   \n&quot;,
       &quot;4    2.043562  2.035601  2.028615  ...       NaN       NaN       NaN   \n&quot;,
       &quot;..        ...       ...       ...  ...       ...       ...       ...   \n&quot;,
       &quot;655  1.327756  1.324277  1.323134  ...  1.499410  1.497142  1.494746   \n&quot;,
       &quot;656  1.310951  1.311175  1.313381  ...  1.515755  1.513311  1.510736   \n&quot;,
       &quot;657  1.425345  1.425352  1.426876  ...  1.562482  1.559861  1.557129   \n&quot;,
       &quot;658  1.378954  1.378166  1.379234  ...  1.543082  1.540410  1.537605   \n&quot;,
       &quot;659  1.432190  1.435510  1.440097  ...  1.617167  1.614502  1.611717   \n&quot;,
       &quot;\n&quot;,
       &quot;0        37.0      37.5      38.0      38.5      39.0      39.5      40.0  \n&quot;,
       &quot;0         NaN       NaN       NaN       NaN       NaN       NaN       NaN  \n&quot;,
       &quot;1         NaN       NaN       NaN       NaN       NaN       NaN       NaN  \n&quot;,
       &quot;2         NaN       NaN       NaN       NaN       NaN       NaN       NaN  \n&quot;,
       &quot;3         NaN       NaN       NaN       NaN       NaN       NaN       NaN  \n&quot;,
       &quot;4         NaN       NaN       NaN       NaN       NaN       NaN       NaN  \n&quot;,
       &quot;..        ...       ...       ...       ...       ...       ...       ...  \n&quot;,
       &quot;655  1.492218  1.489558  1.486763  1.483831  1.480760  1.477550  1.474197  \n&quot;,
       &quot;656  1.508030  1.505189  1.502213  1.499099  1.495847  1.492453  1.488918  \n&quot;,
       &quot;657  1.554288  1.551334  1.548267  1.545084  1.541785  1.538368  1.534832  \n&quot;,
       &quot;658  1.534664  1.531586  1.528368  1.525007  1.521501  1.517847  1.514042  \n&quot;,
       &quot;659  1.608811  1.605781  1.602625  1.599343  1.595930  1.592387  1.588710  \n&quot;,
       &quot;\n&quot;,
       &quot;[660 rows x 80 columns]&quot;
      ]
     },
     &quot;execution_count&quot;: 37,
     &quot;metadata&quot;: {},
     &quot;output_type&quot;: &quot;execute_result&quot;
    }
   ],
   &quot;source&quot;: [
    &quot;np.log(df.iloc[:,1:])&quot;
   ]
  },
  {
   &quot;cell_type&quot;: &quot;code&quot;,
   &quot;execution_count&quot;: 39,
   &quot;id&quot;: &quot;089921ab-4e37-4661-a9eb-3da7cae5f52f&quot;,
   &quot;metadata&quot;: {
    &quot;scrolled&quot;: true
   },
   &quot;outputs&quot;: [
    {
     &quot;data&quot;: {
      &quot;text/plain&quot;: [
       &quot;0\n&quot;,
       &quot;0.5          NaN\n&quot;,
       &quot;1.0     8.413131\n&quot;,
       &quot;1.5     8.397269\n&quot;,
       &quot;2.0     8.370748\n&quot;,
       &quot;2.5     8.337633\n&quot;,
       &quot;          ...   \n&quot;,
       &quot;38.0         NaN\n&quot;,
       &quot;38.5         NaN\n&quot;,
       &quot;39.0         NaN\n&quot;,
       &quot;39.5         NaN\n&quot;,
       &quot;40.0         NaN\n&quot;,
       &quot;Name: 1, Length: 80, dtype: object&quot;
      ]
     },
     &quot;execution_count&quot;: 39,
     &quot;metadata&quot;: {},
     &quot;output_type&quot;: &quot;execute_result&quot;
    }
   ],
   &quot;source&quot;: [
    &quot;df.iloc[1,1:]&quot;
   ]
  },
  {
   &quot;cell_type&quot;: &quot;code&quot;,
   &quot;execution_count&quot;: 40,
   &quot;id&quot;: &quot;a7663f0a-699f-4759-8f47-96735dfad6d9&quot;,
   &quot;metadata&quot;: {
    &quot;scrolled&quot;: true
   },
   &quot;outputs&quot;: [
    {
     &quot;ename&quot;: &quot;TypeError&quot;,
     &quot;evalue&quot;: &quot;loop of ufunc does not support argument 0 of type numpy.float64 which has no callable log method&quot;,
     &quot;output_type&quot;: &quot;error&quot;,
     &quot;traceback&quot;: [
      &quot;\u001b[31m---------------------------------------------------------------------------\u001b[39m&quot;,
      &quot;\u001b[31mAttributeError\u001b[39m                            Traceback (most recent call last)&quot;,
      &quot;\u001b[31mAttributeError\u001b[39m: &#39;numpy.float64&#39; object has no attribute &#39;log&#39;&quot;,
      &quot;\nThe above exception was the direct cause of the following exception:\n&quot;,
      &quot;\u001b[31mTypeError\u001b[39m                                 Traceback (most recent call last)&quot;,
      &quot;\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[40]\u001b[39m\u001b[32m, line 1\u001b[39m\n\u001b[32m----&gt; \u001b[39m\u001b[32m1\u001b[39m \u001b[43mnp\u001b[49m\u001b[43m.\u001b[49m\u001b[43mlog\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdf\u001b[49m\u001b[43m.\u001b[49m\u001b[43miloc\u001b[49m\u001b[43m[\u001b[49m\u001b[32;43m1\u001b[39;49m\u001b[43m,\u001b[49m\u001b[32;43m1\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m]\u001b[49m\u001b[43m)\u001b[49m\n&quot;,
      &quot;\u001b[36mFile \u001b[39m\u001b[32m/nix/store/grz7lgv2i6x8335n1pfl38x906vc2iby-python3-3.12.10-env/lib/python3.12/site-packages/pandas/core/generic.py:2171\u001b[39m, in \u001b[36mNDFrame.__array_ufunc__\u001b[39m\u001b[34m(self, ufunc, method, *inputs, **kwargs)\u001b[39m\n\u001b[32m   2167\u001b[39m \u001b[38;5;129m@final\u001b[39m\n\u001b[32m   2168\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34m__array_ufunc__\u001b[39m(\n\u001b[32m   2169\u001b[39m     \u001b[38;5;28mself\u001b[39m, ufunc: np.ufunc, method: \u001b[38;5;28mstr\u001b[39m, *inputs: Any, **kwargs: Any\n\u001b[32m   2170\u001b[39m ):\n\u001b[32m-&gt; \u001b[39m\u001b[32m2171\u001b[39m     \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43marraylike\u001b[49m\u001b[43m.\u001b[49m\u001b[43marray_ufunc\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mufunc\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmethod\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m*\u001b[49m\u001b[43minputs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m*\u001b[49m\u001b[43m*\u001b[49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n&quot;,
      &quot;\u001b[36mFile \u001b[39m\u001b[32m/nix/store/grz7lgv2i6x8335n1pfl38x906vc2iby-python3-3.12.10-env/lib/python3.12/site-packages/pandas/core/arraylike.py:399\u001b[39m, in \u001b[36marray_ufunc\u001b[39m\u001b[34m(self, ufunc, method, *inputs, **kwargs)\u001b[39m\n\u001b[32m    396\u001b[39m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28mself\u001b[39m.ndim == \u001b[32m1\u001b[39m:\n\u001b[32m    397\u001b[39m     \u001b[38;5;66;03m# ufunc(series, ...)\u001b[39;00m\n\u001b[32m    398\u001b[39m     inputs = \u001b[38;5;28mtuple\u001b[39m(extract_array(x, extract_numpy=\u001b[38;5;28;01mTrue\u001b[39;00m) \u001b[38;5;28;01mfor\u001b[39;00m x \u001b[38;5;129;01min\u001b[39;00m inputs)\n\u001b[32m--&gt; \u001b[39m\u001b[32m399\u001b[39m     result = \u001b[38;5;28;43mgetattr\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mufunc\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmethod\u001b[49m\u001b[43m)\u001b[49m\u001b[43m(\u001b[49m\u001b[43m*\u001b[49m\u001b[43minputs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m*\u001b[49m\u001b[43m*\u001b[49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m    400\u001b[39m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[32m    401\u001b[39m     \u001b[38;5;66;03m# ufunc(dataframe)\u001b[39;00m\n\u001b[32m    402\u001b[39m     \u001b[38;5;28;01mif\u001b[39;00m method == \u001b[33m\&quot;\u001b[39m\u001b[33m__call__\u001b[39m\u001b[33m\&quot;\u001b[39m \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m kwargs:\n\u001b[32m    403\u001b[39m         \u001b[38;5;66;03m# for np.&lt;ufunc&gt;(..) calls\u001b[39;00m\n\u001b[32m    404\u001b[39m         \u001b[38;5;66;03m# kwargs cannot necessarily be handled block-by-block, so only\u001b[39;00m\n\u001b[32m    405\u001b[39m         \u001b[38;5;66;03m# take this path if there are no kwargs\u001b[39;00m\n&quot;,
      &quot;\u001b[31mTypeError\u001b[39m: loop of ufunc does not support argument 0 of type numpy.float64 which has no callable log method&quot;
     ]
    }
   ],
   &quot;source&quot;: [
    &quot;np.log(df.iloc[1,1:])&quot;
   ]
  },
  {
   &quot;cell_type&quot;: &quot;code&quot;,
   &quot;execution_count&quot;: 41,
   &quot;id&quot;: &quot;ac62cdf6-496f-4cd3-94bb-54d1ba0cc5b7&quot;,
   &quot;metadata&quot;: {},
   &quot;outputs&quot;: [
    {
     &quot;data&quot;: {
      &quot;text/plain&quot;: [
       &quot;0\n&quot;,
       &quot;0.5     &lt;class &#39;numpy.float64&#39;&gt;\n&quot;,
       &quot;1.0     &lt;class &#39;numpy.float64&#39;&gt;\n&quot;,
       &quot;1.5     &lt;class &#39;numpy.float64&#39;&gt;\n&quot;,
       &quot;2.0     &lt;class &#39;numpy.float64&#39;&gt;\n&quot;,
       &quot;2.5     &lt;class &#39;numpy.float64&#39;&gt;\n&quot;,
       &quot;                 ...           \n&quot;,
       &quot;38.0    &lt;class &#39;numpy.float64&#39;&gt;\n&quot;,
       &quot;38.5    &lt;class &#39;numpy.float64&#39;&gt;\n&quot;,
       &quot;39.0    &lt;class &#39;numpy.float64&#39;&gt;\n&quot;,
       &quot;39.5    &lt;class &#39;numpy.float64&#39;&gt;\n&quot;,
       &quot;40.0    &lt;class &#39;numpy.float64&#39;&gt;\n&quot;,
       &quot;Name: 1, Length: 80, dtype: object&quot;
      ]
     },
     &quot;execution_count&quot;: 41,
     &quot;metadata&quot;: {},
     &quot;output_type&quot;: &quot;execute_result&quot;
    }
   ],
   &quot;source&quot;: [
    &quot;df.iloc[1, 1:].apply(type)\n&quot;
   ]
  },
  {
   &quot;cell_type&quot;: &quot;code&quot;,
   &quot;execution_count&quot;: 42,
   &quot;id&quot;: &quot;792a5228-dc32-423c-935b-31a9d3433d9f&quot;,
   &quot;metadata&quot;: {},
   &quot;outputs&quot;: [
    {
     &quot;data&quot;: {
      &quot;text/plain&quot;: [
       &quot;1\n&quot;,
       &quot;&lt;class &#39;numpy.float64&#39;&gt;    80\n&quot;,
       &quot;Name: count, dtype: int64&quot;
      ]
     },
     &quot;execution_count&quot;: 42,
     &quot;metadata&quot;: {},
     &quot;output_type&quot;: &quot;execute_result&quot;
    }
   ],
   &quot;source&quot;: [
    &quot;df.iloc[1, 1:].apply(type).value_counts()\n&quot;
   ]
  },
  {
   &quot;cell_type&quot;: &quot;code&quot;,
   &quot;execution_count&quot;: 43,
   &quot;id&quot;: &quot;655cb9ff-d2b8-4aa0-a808-8e8af70d7d3b&quot;,
   &quot;metadata&quot;: {},
   &quot;outputs&quot;: [
    {
     &quot;name&quot;: &quot;stdout&quot;,
     &quot;output_type&quot;: &quot;stream&quot;,
     &quot;text&quot;: [
      &quot;31\n&quot;,
      &quot;object\n&quot;,
      &quot;&lt;class &#39;pandas.core.series.Series&#39;&gt;\n&quot;
     ]
    },
    {
     &quot;ename&quot;: &quot;TypeError&quot;,
     &quot;evalue&quot;: &quot;loop of ufunc does not support argument 0 of type numpy.float64 which has no callable log method&quot;,
     &quot;output_type&quot;: &quot;error&quot;,
     &quot;traceback&quot;: [
      &quot;\u001b[31m---------------------------------------------------------------------------\u001b[39m&quot;,
      &quot;\u001b[31mAttributeError\u001b[39m                            Traceback (most recent call last)&quot;,
      &quot;\u001b[31mAttributeError\u001b[39m: &#39;numpy.float64&#39; object has no attribute &#39;log&#39;&quot;,
      &quot;\nThe above exception was the direct cause of the following exception:\n&quot;,
      &quot;\u001b[31mTypeError\u001b[39m                                 Traceback (most recent call last)&quot;,
      &quot;\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[43]\u001b[39m\u001b[32m, line 5\u001b[39m\n\u001b[32m      3\u001b[39m \u001b[38;5;28mprint\u001b[39m(row.dtypes)        \u001b[38;5;66;03m# Check Series dtype\u001b[39;00m\n\u001b[32m      4\u001b[39m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;28mtype\u001b[39m(row))         \u001b[38;5;66;03m# Confirm it&#39;s a Series\u001b[39;00m\n\u001b[32m----&gt; \u001b[39m\u001b[32m5\u001b[39m \u001b[43mnp\u001b[49m\u001b[43m.\u001b[49m\u001b[43mlog\u001b[49m\u001b[43m(\u001b[49m\u001b[43mrow\u001b[49m\u001b[43m)\u001b[49m              \u001b[38;5;66;03m# Try again\u001b[39;00m\n&quot;,
      &quot;\u001b[36mFile \u001b[39m\u001b[32m/nix/store/grz7lgv2i6x8335n1pfl38x906vc2iby-python3-3.12.10-env/lib/python3.12/site-packages/pandas/core/generic.py:2171\u001b[39m, in \u001b[36mNDFrame.__array_ufunc__\u001b[39m\u001b[34m(self, ufunc, method, *inputs, **kwargs)\u001b[39m\n\u001b[32m   2167\u001b[39m \u001b[38;5;129m@final\u001b[39m\n\u001b[32m   2168\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34m__array_ufunc__\u001b[39m(\n\u001b[32m   2169\u001b[39m     \u001b[38;5;28mself\u001b[39m, ufunc: np.ufunc, method: \u001b[38;5;28mstr\u001b[39m, *inputs: Any, **kwargs: Any\n\u001b[32m   2170\u001b[39m ):\n\u001b[32m-&gt; \u001b[39m\u001b[32m2171\u001b[39m     \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43marraylike\u001b[49m\u001b[43m.\u001b[49m\u001b[43marray_ufunc\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mufunc\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmethod\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m*\u001b[49m\u001b[43minputs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m*\u001b[49m\u001b[43m*\u001b[49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n&quot;,
      &quot;\u001b[36mFile \u001b[39m\u001b[32m/nix/store/grz7lgv2i6x8335n1pfl38x906vc2iby-python3-3.12.10-env/lib/python3.12/site-packages/pandas/core/arraylike.py:399\u001b[39m, in \u001b[36marray_ufunc\u001b[39m\u001b[34m(self, ufunc, method, *inputs, **kwargs)\u001b[39m\n\u001b[32m    396\u001b[39m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28mself\u001b[39m.ndim == \u001b[32m1\u001b[39m:\n\u001b[32m    397\u001b[39m     \u001b[38;5;66;03m# ufunc(series, ...)\u001b[39;00m\n\u001b[32m    398\u001b[39m     inputs = \u001b[38;5;28mtuple\u001b[39m(extract_array(x, extract_numpy=\u001b[38;5;28;01mTrue\u001b[39;00m) \u001b[38;5;28;01mfor\u001b[39;00m x \u001b[38;5;129;01min\u001b[39;00m inputs)\n\u001b[32m--&gt; \u001b[39m\u001b[32m399\u001b[39m     result = \u001b[38;5;28;43mgetattr\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mufunc\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmethod\u001b[49m\u001b[43m)\u001b[49m\u001b[43m(\u001b[49m\u001b[43m*\u001b[49m\u001b[43minputs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m*\u001b[49m\u001b[43m*\u001b[49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m    400\u001b[39m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[32m    401\u001b[39m     \u001b[38;5;66;03m# ufunc(dataframe)\u001b[39;00m\n\u001b[32m    402\u001b[39m     \u001b[38;5;28;01mif\u001b[39;00m method == \u001b[33m\&quot;\u001b[39m\u001b[33m__call__\u001b[39m\u001b[33m\&quot;\u001b[39m \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m kwargs:\n\u001b[32m    403\u001b[39m         \u001b[38;5;66;03m# for np.&lt;ufunc&gt;(..) calls\u001b[39;00m\n\u001b[32m    404\u001b[39m         \u001b[38;5;66;03m# kwargs cannot necessarily be handled block-by-block, so only\u001b[39;00m\n\u001b[32m    405\u001b[39m         \u001b[38;5;66;03m# take this path if there are no kwargs\u001b[39;00m\n&quot;,
      &quot;\u001b[31mTypeError\u001b[39m: loop of ufunc does not support argument 0 of type numpy.float64 which has no callable log method&quot;
     ]
    }
   ],
   &quot;source&quot;: [
    &quot;row = df.iloc[1, 1:]\n&quot;,
    &quot;print(row.isna().sum())  # How many NaNs?\n&quot;,
    &quot;print(row.dtypes)        # Check Series dtype\n&quot;,
    &quot;print(type(row))         # Confirm it&#39;s a Series\n&quot;,
    &quot;np.log(row)              # Try again\n&quot;
   ]
  },
  {
   &quot;cell_type&quot;: &quot;code&quot;,
   &quot;execution_count&quot;: 45,
   &quot;id&quot;: &quot;c60760bb-8195-4121-9db2-06e8e20a26c8&quot;,
   &quot;metadata&quot;: {
    &quot;scrolled&quot;: true
   },
   &quot;outputs&quot;: [
    {
     &quot;ename&quot;: &quot;TypeError&quot;,
     &quot;evalue&quot;: &quot;loop of ufunc does not support argument 0 of type numpy.float64 which has no callable log method&quot;,
     &quot;output_type&quot;: &quot;error&quot;,
     &quot;traceback&quot;: [
      &quot;\u001b[31m---------------------------------------------------------------------------\u001b[39m&quot;,
      &quot;\u001b[31mAttributeError\u001b[39m                            Traceback (most recent call last)&quot;,
      &quot;\u001b[31mAttributeError\u001b[39m: &#39;numpy.float64&#39; object has no attribute &#39;log&#39;&quot;,
      &quot;\nThe above exception was the direct cause of the following exception:\n&quot;,
      &quot;\u001b[31mTypeError\u001b[39m                                 Traceback (most recent call last)&quot;,
      &quot;\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[45]\u001b[39m\u001b[32m, line 1\u001b[39m\n\u001b[32m----&gt; \u001b[39m\u001b[32m1\u001b[39m \u001b[43mnp\u001b[49m\u001b[43m.\u001b[49m\u001b[43mlog\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdf\u001b[49m\u001b[43m.\u001b[49m\u001b[43miloc\u001b[49m\u001b[43m[\u001b[49m\u001b[32;43m1\u001b[39;49m\u001b[43m,\u001b[49m\u001b[32;43m1\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m]\u001b[49m\u001b[43m.\u001b[49m\u001b[43mto_numpy\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n&quot;,
      &quot;\u001b[31mTypeError\u001b[39m: loop of ufunc does not support argument 0 of type numpy.float64 which has no callable log method&quot;
     ]
    }
   ],
   &quot;source&quot;: [
    &quot;np.log(df.iloc[1,1:].to_numpy())&quot;
   ]
  },
  {
   &quot;cell_type&quot;: &quot;code&quot;,
   &quot;execution_count&quot;: 36,
   &quot;id&quot;: &quot;af1d56d3-ed2e-4328-8aaa-79565e12c777&quot;,
   &quot;metadata&quot;: {},
   &quot;outputs&quot;: [
    {
     &quot;data&quot;: {
      &quot;text/html&quot;: [
       &quot;&lt;div&gt;\n&quot;,
       &quot;&lt;style scoped&gt;\n&quot;,
       &quot;    .dataframe tbody tr th:only-of-type {\n&quot;,
       &quot;        vertical-align: middle;\n&quot;,
       &quot;    }\n&quot;,
       &quot;\n&quot;,
       &quot;    .dataframe tbody tr th {\n&quot;,
       &quot;        vertical-align: top;\n&quot;,
       &quot;    }\n&quot;,
       &quot;\n&quot;,
       &quot;    .dataframe thead th {\n&quot;,
       &quot;        text-align: right;\n&quot;,
       &quot;    }\n&quot;,
       &quot;&lt;/style&gt;\n&quot;,
       &quot;&lt;table border=\&quot;1\&quot; class=\&quot;dataframe\&quot;&gt;\n&quot;,
       &quot;  &lt;thead&gt;\n&quot;,
       &quot;    &lt;tr style=\&quot;text-align: right;\&quot;&gt;\n&quot;,
       &quot;      &lt;th&gt;&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;Date&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;0.5&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;1&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;1.5&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;2&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;2.5&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;3&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;3.5&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;4&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;4.5&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;...&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;35.5&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;36&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;36.5&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;37&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;37.5&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;38&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;38.5&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;39&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;39.5&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;40&lt;/th&gt;\n&quot;,
       &quot;    &lt;/tr&gt;\n&quot;,
       &quot;  &lt;/thead&gt;\n&quot;,
       &quot;  &lt;tbody&gt;\n&quot;,
       &quot;    &lt;tr&gt;\n&quot;,
       &quot;      &lt;th&gt;0&lt;/th&gt;\n&quot;,
       &quot;      &lt;td&gt;1970-01-31&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;8.635354&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;8.707430&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;8.700727&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;8.664049&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;8.618702&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;8.572477&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;8.528372&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;8.487617&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;    &lt;/tr&gt;\n&quot;,
       &quot;    &lt;tr&gt;\n&quot;,
       &quot;      &lt;th&gt;1&lt;/th&gt;\n&quot;,
       &quot;      &lt;td&gt;1970-02-28&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;8.413131&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;8.397269&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;8.370748&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;8.337633&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;8.301590&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;8.265403&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;8.230804&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;8.198713&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;    &lt;/tr&gt;\n&quot;,
       &quot;    &lt;tr&gt;\n&quot;,
       &quot;      &lt;th&gt;2&lt;/th&gt;\n&quot;,
       &quot;      &lt;td&gt;1970-03-31&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;7.744187&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;7.782761&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;7.795017&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;7.793104&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;7.784963&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;7.775288&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;7.766459&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;7.759564&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;    &lt;/tr&gt;\n&quot;,
       &quot;    &lt;tr&gt;\n&quot;,
       &quot;      &lt;th&gt;3&lt;/th&gt;\n&quot;,
       &quot;      &lt;td&gt;1970-04-30&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;7.606512&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;7.864352&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;7.973522&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;8.002442&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;7.992813&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;7.967524&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;7.938335&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;7.911422&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;    &lt;/tr&gt;\n&quot;,
       &quot;    &lt;tr&gt;\n&quot;,
       &quot;      &lt;th&gt;4&lt;/th&gt;\n&quot;,
       &quot;      &lt;td&gt;1970-05-31&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;7.391107&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;7.735838&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;7.862182&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;7.877510&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;7.840673&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;7.782249&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;7.718053&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;7.656856&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;    &lt;/tr&gt;\n&quot;,
       &quot;  &lt;/tbody&gt;\n&quot;,
       &quot;&lt;/table&gt;\n&quot;,
       &quot;&lt;p&gt;5 rows × 81 columns&lt;/p&gt;\n&quot;,
       &quot;&lt;/div&gt;&quot;
      ],
      &quot;text/plain&quot;: [
       &quot;0       Date  0.5         1       1.5         2       2.5         3       3.5  \\\n&quot;,
       &quot;0 1970-01-31  NaN  8.635354  8.707430  8.700727  8.664049  8.618702  8.572477   \n&quot;,
       &quot;1 1970-02-28  NaN  8.413131  8.397269  8.370748  8.337633  8.301590  8.265403   \n&quot;,
       &quot;2 1970-03-31  NaN  7.744187  7.782761  7.795017  7.793104  7.784963  7.775288   \n&quot;,
       &quot;3 1970-04-30  NaN  7.606512  7.864352  7.973522  8.002442  7.992813  7.967524   \n&quot;,
       &quot;4 1970-05-31  NaN  7.391107  7.735838  7.862182  7.877510  7.840673  7.782249   \n&quot;,
       &quot;\n&quot;,
       &quot;0         4       4.5  ...  35.5  36  36.5  37  37.5  38  38.5  39  39.5  40  \n&quot;,
       &quot;0  8.528372  8.487617  ...   NaN NaN   NaN NaN   NaN NaN   NaN NaN   NaN NaN  \n&quot;,
       &quot;1  8.230804  8.198713  ...   NaN NaN   NaN NaN   NaN NaN   NaN NaN   NaN NaN  \n&quot;,
       &quot;2  7.766459  7.759564  ...   NaN NaN   NaN NaN   NaN NaN   NaN NaN   NaN NaN  \n&quot;,
       &quot;3  7.938335  7.911422  ...   NaN NaN   NaN NaN   NaN NaN   NaN NaN   NaN NaN  \n&quot;,
       &quot;4  7.718053  7.656856  ...   NaN NaN   NaN NaN   NaN NaN   NaN NaN   NaN NaN  \n&quot;,
       &quot;\n&quot;,
       &quot;[5 rows x 81 columns]&quot;
      ]
     },
     &quot;execution_count&quot;: 36,
     &quot;metadata&quot;: {},
     &quot;output_type&quot;: &quot;execute_result&quot;
    }
   ],
   &quot;source&quot;: [
    &quot;df.head()&quot;
   ]
  },
  {
   &quot;cell_type&quot;: &quot;code&quot;,
   &quot;execution_count&quot;: null,
   &quot;id&quot;: &quot;30e4bd09-8995-48f3-9a35-2f7c1344b636&quot;,
   &quot;metadata&quot;: {},
   &quot;outputs&quot;: [],
   &quot;source&quot;: []
  },
  {
   &quot;cell_type&quot;: &quot;markdown&quot;,
   &quot;id&quot;: &quot;5f91cd8d-b3c6-487b-a64e-062493267579&quot;,
   &quot;metadata&quot;: {},
   &quot;source&quot;: [
    &quot;## Looking at Dataframes in Spreadsheet&quot;
   ]
  },
  {
   &quot;cell_type&quot;: &quot;code&quot;,
   &quot;execution_count&quot;: null,
   &quot;id&quot;: &quot;b5f75258-e274-42ed-94d5-b700e196d448&quot;,
   &quot;metadata&quot;: {},
   &quot;outputs&quot;: [],
   &quot;source&quot;: []
  },
  {
   &quot;cell_type&quot;: &quot;code&quot;,
   &quot;execution_count&quot;: 20,
   &quot;id&quot;: &quot;b05417cf-594a-49cb-a687-c3c19f43f80f&quot;,
   &quot;metadata&quot;: {},
   &quot;outputs&quot;: [
    {
     &quot;ename&quot;: &quot;NameError&quot;,
     &quot;evalue&quot;: &quot;name &#39;df_numeric&#39; is not defined&quot;,
     &quot;output_type&quot;: &quot;error&quot;,
     &quot;traceback&quot;: [
      &quot;\u001b[31m---------------------------------------------------------------------------\u001b[39m&quot;,
      &quot;\u001b[31mNameError\u001b[39m                                 Traceback (most recent call last)&quot;,
      &quot;\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[20]\u001b[39m\u001b[32m, line 7\u001b[39m\n\u001b[32m      5\u001b[39m df2.to_excel(writer, sheet_name=\u001b[33m\&quot;\u001b[39m\u001b[33mdf2\u001b[39m\u001b[33m\&quot;\u001b[39m, index=\u001b[38;5;28;01mFalse\u001b[39;00m)\n\u001b[32m      6\u001b[39m df.to_excel(writer, sheet_name=\u001b[33m\&quot;\u001b[39m\u001b[33mdf\u001b[39m\u001b[33m\&quot;\u001b[39m, index=\u001b[38;5;28;01mFalse\u001b[39;00m)\n\u001b[32m----&gt; \u001b[39m\u001b[32m7\u001b[39m \u001b[43mdf_numeric\u001b[49m.to_excel(writer, sheet_name=\u001b[33m\&quot;\u001b[39m\u001b[33mdf_numeric\u001b[39m\u001b[33m\&quot;\u001b[39m, index=\u001b[38;5;28;01mFalse\u001b[39;00m)\n\u001b[32m      8\u001b[39m df_converted.to_excel(writer, sheet_name=\u001b[33m\&quot;\u001b[39m\u001b[33mdf_converted\u001b[39m\u001b[33m\&quot;\u001b[39m, index=\u001b[38;5;28;01mFalse\u001b[39;00m)\n\u001b[32m      9\u001b[39m mask_problem.to_excel(writer, sheet_name=\u001b[33m\&quot;\u001b[39m\u001b[33mmask_problem\u001b[39m\u001b[33m\&quot;\u001b[39m, index=\u001b[38;5;28;01mFalse\u001b[39;00m)\n&quot;,
      &quot;\u001b[31mNameError\u001b[39m: name &#39;df_numeric&#39; is not defined&quot;
     ]
    }
   ],
   &quot;source&quot;: [
    &quot;import os\n&quot;,
    &quot;\n&quot;,
    &quot;with pd.ExcelWriter(\&quot;output.xlsx\&quot;, engine=\&quot;openpyxl\&quot;) as writer:\n&quot;,
    &quot;    df1.to_excel(writer, sheet_name=\&quot;df1\&quot;, index=False)\n&quot;,
    &quot;    df2.to_excel(writer, sheet_name=\&quot;df2\&quot;, index=False)\n&quot;,
    &quot;    df.to_excel(writer, sheet_name=\&quot;df\&quot;, index=False)\n&quot;,
    &quot;    df_numeric.to_excel(writer, sheet_name=\&quot;df_numeric\&quot;, index=False)\n&quot;,
    &quot;    df_converted.to_excel(writer, sheet_name=\&quot;df_converted\&quot;, index=False)\n&quot;,
    &quot;    mask_problem.to_excel(writer, sheet_name=\&quot;mask_problem\&quot;, index=False)\n&quot;,
    &quot;    filtered.to_excel(writer, sheet_name=\&quot;filtered\&quot;, index=False)\n&quot;,
    &quot;    col_names.to_excel(writer, sheet_name=\&quot;col_names\&quot;, index=False)\n&quot;,
    &quot;    col_names2.to_excel(writer, sheet_name=\&quot;col_names2\&quot;, index=False)\n&quot;,
    &quot;os.system(\&quot;libreoffice --calc output.xlsx &amp; disown\&quot;)\n&quot;
   ]
  },
  {
   &quot;cell_type&quot;: &quot;code&quot;,
   &quot;execution_count&quot;: 46,
   &quot;id&quot;: &quot;18d96fed-f939-4051-87ce-3053e8cd043e&quot;,
   &quot;metadata&quot;: {},
   &quot;outputs&quot;: [
    {
     &quot;name&quot;: &quot;stdout&quot;,
     &quot;output_type&quot;: &quot;stream&quot;,
     &quot;text&quot;: [
      &quot;Min: 8.048354459961853\n&quot;,
      &quot;Any &lt;= 0: False\n&quot;
     ]
    },
    {
     &quot;name&quot;: &quot;stderr&quot;,
     &quot;output_type&quot;: &quot;stream&quot;,
     &quot;text&quot;: [
      &quot;/tmp/nix-shell-4091-0/ipykernel_68792/2039625757.py:3: RuntimeWarning: invalid value encountered in less_equal\n&quot;,
      &quot;  print(\&quot;Any &lt;= 0:\&quot;, np.any(row &lt;= 0))  # Will trigger log error\n&quot;
     ]
    }
   ],
   &quot;source&quot;: [
    &quot;row = df.iloc[1, 1:].to_numpy()\n&quot;,
    &quot;print(\&quot;Min:\&quot;, np.nanmin(row))     # Ignores NaN\n&quot;,
    &quot;print(\&quot;Any &lt;= 0:\&quot;, np.any(row &lt;= 0))  # Will trigger log error\n&quot;
   ]
  },
  {
   &quot;cell_type&quot;: &quot;markdown&quot;,
   &quot;id&quot;: &quot;106c408f-a80a-4e9f-a5fc-b3f20535bcf5&quot;,
   &quot;metadata&quot;: {},
   &quot;source&quot;: [
    &quot;## a check on the log calculation\n&quot;,
    &quot;log(x \n&quot;,
    &quot;i\n&quot;,
    &quot;\n&quot;,
    &quot; )=log(x \n&quot;,
    &quot;i\n&quot;,
    &quot;\n&quot;,
    &quot; )&quot;
   ]
  },
  {
   &quot;cell_type&quot;: &quot;code&quot;,
   &quot;execution_count&quot;: 47,
   &quot;id&quot;: &quot;ce0dc267-c312-49c2-81da-ec6ac725af08&quot;,
   &quot;metadata&quot;: {},
   &quot;outputs&quot;: [
    {
     &quot;name&quot;: &quot;stdout&quot;,
     &quot;output_type&quot;: &quot;stream&quot;,
     &quot;text&quot;: [
      &quot;[]\n&quot;
     ]
    }
   ],
   &quot;source&quot;: [
    &quot;row = df.iloc[1, 1:]\n&quot;,
    &quot;bad_values = [v for v in row if not isinstance(v, (float, np.float64))]\n&quot;,
    &quot;print(bad_values)\n&quot;
   ]
  },
  {
   &quot;cell_type&quot;: &quot;markdown&quot;,
   &quot;id&quot;: &quot;120fd02d-7d10-49f0-bbcd-acd123f2a2ed&quot;,
   &quot;metadata&quot;: {},
   &quot;source&quot;: [
    &quot;#### for i, val in enumerate(row):\n&quot;,
    &quot;    try:\n&quot;,
    &quot;        np.log(val)\n&quot;,
    &quot;    except Exception as e:\n&quot;,
    &quot;        print(f\&quot;Column {row.index[i]}: value={val!r} -&gt; {type(val)} caused error: {e}\&quot;)\n&quot;
   ]
  },
  {
   &quot;cell_type&quot;: &quot;code&quot;,
   &quot;execution_count&quot;: 50,
   &quot;id&quot;: &quot;ad91eb76-6862-4c6a-b7ef-b38a2edf888d&quot;,
   &quot;metadata&quot;: {},
   &quot;outputs&quot;: [
    {
     &quot;ename&quot;: &quot;TypeError&quot;,
     &quot;evalue&quot;: &quot;loop of ufunc does not support argument 0 of type numpy.float64 which has no callable log method&quot;,
     &quot;output_type&quot;: &quot;error&quot;,
     &quot;traceback&quot;: [
      &quot;\u001b[31m---------------------------------------------------------------------------\u001b[39m&quot;,
      &quot;\u001b[31mAttributeError\u001b[39m                            Traceback (most recent call last)&quot;,
      &quot;\u001b[31mAttributeError\u001b[39m: &#39;numpy.float64&#39; object has no attribute &#39;log&#39;&quot;,
      &quot;\nThe above exception was the direct cause of the following exception:\n&quot;,
      &quot;\u001b[31mTypeError\u001b[39m                                 Traceback (most recent call last)&quot;,
      &quot;\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[50]\u001b[39m\u001b[32m, line 1\u001b[39m\n\u001b[32m----&gt; \u001b[39m\u001b[32m1\u001b[39m \u001b[43mnp\u001b[49m\u001b[43m.\u001b[49m\u001b[43mlog\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdf\u001b[49m\u001b[43m.\u001b[49m\u001b[43miloc\u001b[49m\u001b[43m[\u001b[49m\u001b[32;43m1\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[32;43m1\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m]\u001b[49m\u001b[43m.\u001b[49m\u001b[43mreset_index\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdrop\u001b[49m\u001b[43m=\u001b[49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n&quot;,
      &quot;\u001b[36mFile \u001b[39m\u001b[32m/nix/store/grz7lgv2i6x8335n1pfl38x906vc2iby-python3-3.12.10-env/lib/python3.12/site-packages/pandas/core/generic.py:2171\u001b[39m, in \u001b[36mNDFrame.__array_ufunc__\u001b[39m\u001b[34m(self, ufunc, method, *inputs, **kwargs)\u001b[39m\n\u001b[32m   2167\u001b[39m \u001b[38;5;129m@final\u001b[39m\n\u001b[32m   2168\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34m__array_ufunc__\u001b[39m(\n\u001b[32m   2169\u001b[39m     \u001b[38;5;28mself\u001b[39m, ufunc: np.ufunc, method: \u001b[38;5;28mstr\u001b[39m, *inputs: Any, **kwargs: Any\n\u001b[32m   2170\u001b[39m ):\n\u001b[32m-&gt; \u001b[39m\u001b[32m2171\u001b[39m     \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43marraylike\u001b[49m\u001b[43m.\u001b[49m\u001b[43marray_ufunc\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mufunc\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmethod\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m*\u001b[49m\u001b[43minputs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m*\u001b[49m\u001b[43m*\u001b[49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n&quot;,
      &quot;\u001b[36mFile \u001b[39m\u001b[32m/nix/store/grz7lgv2i6x8335n1pfl38x906vc2iby-python3-3.12.10-env/lib/python3.12/site-packages/pandas/core/arraylike.py:399\u001b[39m, in \u001b[36marray_ufunc\u001b[39m\u001b[34m(self, ufunc, method, *inputs, **kwargs)\u001b[39m\n\u001b[32m    396\u001b[39m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28mself\u001b[39m.ndim == \u001b[32m1\u001b[39m:\n\u001b[32m    397\u001b[39m     \u001b[38;5;66;03m# ufunc(series, ...)\u001b[39;00m\n\u001b[32m    398\u001b[39m     inputs = \u001b[38;5;28mtuple\u001b[39m(extract_array(x, extract_numpy=\u001b[38;5;28;01mTrue\u001b[39;00m) \u001b[38;5;28;01mfor\u001b[39;00m x \u001b[38;5;129;01min\u001b[39;00m inputs)\n\u001b[32m--&gt; \u001b[39m\u001b[32m399\u001b[39m     result = \u001b[38;5;28;43mgetattr\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mufunc\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmethod\u001b[49m\u001b[43m)\u001b[49m\u001b[43m(\u001b[49m\u001b[43m*\u001b[49m\u001b[43minputs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m*\u001b[49m\u001b[43m*\u001b[49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m    400\u001b[39m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[32m    401\u001b[39m     \u001b[38;5;66;03m# ufunc(dataframe)\u001b[39;00m\n\u001b[32m    402\u001b[39m     \u001b[38;5;28;01mif\u001b[39;00m method == \u001b[33m\&quot;\u001b[39m\u001b[33m__call__\u001b[39m\u001b[33m\&quot;\u001b[39m \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m kwargs:\n\u001b[32m    403\u001b[39m         \u001b[38;5;66;03m# for np.&lt;ufunc&gt;(..) calls\u001b[39;00m\n\u001b[32m    404\u001b[39m         \u001b[38;5;66;03m# kwargs cannot necessarily be handled block-by-block, so only\u001b[39;00m\n\u001b[32m    405\u001b[39m         \u001b[38;5;66;03m# take this path if there are no kwargs\u001b[39;00m\n&quot;,
      &quot;\u001b[31mTypeError\u001b[39m: loop of ufunc does not support argument 0 of type numpy.float64 which has no callable log method&quot;
     ]
    }
   ],
   &quot;source&quot;: [
    &quot;np.log(df.iloc[1, 1:].reset_index(drop=True))\n&quot;
   ]
  },
  {
   &quot;cell_type&quot;: &quot;code&quot;,
   &quot;execution_count&quot;: 51,
   &quot;id&quot;: &quot;aaa05503-8b20-440c-899a-762767ad34c8&quot;,
   &quot;metadata&quot;: {},
   &quot;outputs&quot;: [
    {
     &quot;data&quot;: {
      &quot;text/plain&quot;: [
       &quot;array([       nan, 2.12979375, 2.12790656, 2.12474326, 2.12077932,\n&quot;,
       &quot;       2.11644705, 2.11207845, 2.10788375, 2.10397718, 2.100422  ,\n&quot;,
       &quot;       2.09724983, 2.09447212, 2.09208754, 2.09008667, 2.08845794,\n&quot;,
       &quot;       2.08719092, 2.0862761 , 2.08570455, 2.08546766, 2.08555702,\n&quot;,
       &quot;       2.08596432, 2.08668129, 2.0876996 , 2.08901092, 2.09060682,\n&quot;,
       &quot;       2.09247882, 2.09461838, 2.09701686, 2.09966558, 2.10255582,\n&quot;,
       &quot;       2.1056788 , 2.10902572, 2.11258776, 2.1163561 , 2.12032194,\n&quot;,
       &quot;       2.12447648, 2.12881098, 2.13331673, 2.13798508, 2.14280746,\n&quot;,
       &quot;       2.14777538, 2.15288042, 2.15811429, 2.16346878, 2.1689358 ,\n&quot;,
       &quot;       2.17450739, 2.18017571, 2.18593307, 2.19177198, 2.19768531,\n&quot;,
       &quot;              nan,        nan,        nan,        nan,        nan,\n&quot;,
       &quot;              nan,        nan,        nan,        nan,        nan,\n&quot;,
       &quot;              nan,        nan,        nan,        nan,        nan,\n&quot;,
       &quot;              nan,        nan,        nan,        nan,        nan,\n&quot;,
       &quot;              nan,        nan,        nan,        nan,        nan,\n&quot;,
       &quot;              nan,        nan,        nan,        nan,        nan])&quot;
      ]
     },
     &quot;execution_count&quot;: 51,
     &quot;metadata&quot;: {},
     &quot;output_type&quot;: &quot;execute_result&quot;
    }
   ],
   &quot;source&quot;: [
    &quot;np.log(pd.to_numeric(df.iloc[1, 1:], errors=&#39;coerce&#39;).values)\n&quot;
   ]
  },
  {
   &quot;cell_type&quot;: &quot;code&quot;,
   &quot;execution_count&quot;: 52,
   &quot;id&quot;: &quot;7865dae7-f222-42ad-87d4-ffc332c93e4b&quot;,
   &quot;metadata&quot;: {},
   &quot;outputs&quot;: [
    {
     &quot;name&quot;: &quot;stderr&quot;,
     &quot;output_type&quot;: &quot;stream&quot;,
     &quot;text&quot;: [
      &quot;/nix/store/grz7lgv2i6x8335n1pfl38x906vc2iby-python3-3.12.10-env/lib/python3.12/site-packages/pandas/core/internals/blocks.py:393: RuntimeWarning: invalid value encountered in log\n&quot;,
      &quot;  result = func(self.values, **kwargs)\n&quot;
     ]
    },
    {
     &quot;data&quot;: {
      &quot;text/html&quot;: [
       &quot;&lt;div&gt;\n&quot;,
       &quot;&lt;style scoped&gt;\n&quot;,
       &quot;    .dataframe tbody tr th:only-of-type {\n&quot;,
       &quot;        vertical-align: middle;\n&quot;,
       &quot;    }\n&quot;,
       &quot;\n&quot;,
       &quot;    .dataframe tbody tr th {\n&quot;,
       &quot;        vertical-align: top;\n&quot;,
       &quot;    }\n&quot;,
       &quot;\n&quot;,
       &quot;    .dataframe thead th {\n&quot;,
       &quot;        text-align: right;\n&quot;,
       &quot;    }\n&quot;,
       &quot;&lt;/style&gt;\n&quot;,
       &quot;&lt;table border=\&quot;1\&quot; class=\&quot;dataframe\&quot;&gt;\n&quot;,
       &quot;  &lt;thead&gt;\n&quot;,
       &quot;    &lt;tr style=\&quot;text-align: right;\&quot;&gt;\n&quot;,
       &quot;      &lt;th&gt;&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;0.5&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;1.0&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;1.5&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;2.0&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;2.5&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;3.0&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;3.5&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;4.0&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;4.5&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;5.0&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;...&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;35.5&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;36.0&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;36.5&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;37.0&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;37.5&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;38.0&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;38.5&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;39.0&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;39.5&lt;/th&gt;\n&quot;,
       &quot;      &lt;th&gt;40.0&lt;/th&gt;\n&quot;,
       &quot;    &lt;/tr&gt;\n&quot;,
       &quot;  &lt;/thead&gt;\n&quot;,
       &quot;  &lt;tbody&gt;\n&quot;,
       &quot;    &lt;tr&gt;\n&quot;,
       &quot;      &lt;th&gt;0&lt;/th&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.155865&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.164177&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.163407&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.159182&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.153934&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.148557&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.143398&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.138608&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.134239&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;    &lt;/tr&gt;\n&quot;,
       &quot;    &lt;tr&gt;\n&quot;,
       &quot;      &lt;th&gt;1&lt;/th&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.129794&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.127907&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.124743&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.120779&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.116447&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.112078&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.107884&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.103977&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.100422&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;    &lt;/tr&gt;\n&quot;,
       &quot;    &lt;tr&gt;\n&quot;,
       &quot;      &lt;th&gt;2&lt;/th&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.046943&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.051911&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.053485&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.053239&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.052194&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.050950&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.049814&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.048926&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.048347&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;    &lt;/tr&gt;\n&quot;,
       &quot;    &lt;tr&gt;\n&quot;,
       &quot;      &lt;th&gt;3&lt;/th&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.029005&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.062340&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.076126&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.079747&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.078543&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.075374&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.071704&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.068308&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.065603&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;    &lt;/tr&gt;\n&quot;,
       &quot;    &lt;tr&gt;\n&quot;,
       &quot;      &lt;th&gt;4&lt;/th&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.000277&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.045864&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.062064&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.064012&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.059325&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.051845&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.043562&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.035601&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;2.028615&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;NaN&lt;/td&gt;\n&quot;,
       &quot;    &lt;/tr&gt;\n&quot;,
       &quot;    &lt;tr&gt;\n&quot;,
       &quot;      &lt;th&gt;...&lt;/th&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;    &lt;/tr&gt;\n&quot;,
       &quot;    &lt;tr&gt;\n&quot;,
       &quot;      &lt;th&gt;655&lt;/th&gt;\n&quot;,
       &quot;      &lt;td&gt;1.455826&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.439353&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.402119&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.375484&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.356925&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.343494&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.333993&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.327756&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.324277&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.323134&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.499410&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.497142&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.494746&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.492218&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.489558&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.486763&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.483831&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.480760&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.477550&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.474197&lt;/td&gt;\n&quot;,
       &quot;    &lt;/tr&gt;\n&quot;,
       &quot;    &lt;tr&gt;\n&quot;,
       &quot;      &lt;th&gt;656&lt;/th&gt;\n&quot;,
       &quot;      &lt;td&gt;1.477274&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.425788&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.376319&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.346838&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.329441&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.319028&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.313292&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.310951&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.311175&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.313381&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.515755&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.513311&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.510736&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.508030&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.505189&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.502213&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.499099&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.495847&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.492453&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.488918&lt;/td&gt;\n&quot;,
       &quot;    &lt;/tr&gt;\n&quot;,
       &quot;    &lt;tr&gt;\n&quot;,
       &quot;      &lt;th&gt;657&lt;/th&gt;\n&quot;,
       &quot;      &lt;td&gt;1.509063&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.479084&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.457223&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.445040&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.436732&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.430826&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.427094&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.425345&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.425352&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.426876&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.562482&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.559861&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.557129&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.554288&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.551334&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.548267&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.545084&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.541785&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.538368&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.534832&lt;/td&gt;\n&quot;,
       &quot;    &lt;/tr&gt;\n&quot;,
       &quot;    &lt;tr&gt;\n&quot;,
       &quot;      &lt;th&gt;658&lt;/th&gt;\n&quot;,
       &quot;      &lt;td&gt;1.480481&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.439974&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.416794&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.403691&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.394121&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.386840&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.381801&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.378954&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.378166&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.379234&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.543082&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.540410&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.537605&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.534664&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.531586&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.528368&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.525007&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.521501&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.517847&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.514042&lt;/td&gt;\n&quot;,
       &quot;    &lt;/tr&gt;\n&quot;,
       &quot;    &lt;tr&gt;\n&quot;,
       &quot;      &lt;th&gt;659&lt;/th&gt;\n&quot;,
       &quot;      &lt;td&gt;1.494679&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.460397&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.441731&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.434688&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.431337&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.429968&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.430298&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.432190&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.435510&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.440097&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;...&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.617167&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.614502&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.611717&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.608811&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.605781&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.602625&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.599343&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.595930&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.592387&lt;/td&gt;\n&quot;,
       &quot;      &lt;td&gt;1.588710&lt;/td&gt;\n&quot;,
       &quot;    &lt;/tr&gt;\n&quot;,
       &quot;  &lt;/tbody&gt;\n&quot;,
       &quot;&lt;/table&gt;\n&quot;,
       &quot;&lt;p&gt;660 rows × 80 columns&lt;/p&gt;\n&quot;,
       &quot;&lt;/div&gt;&quot;
      ],
      &quot;text/plain&quot;: [
       &quot;0        0.5       1.0       1.5       2.0       2.5       3.0       3.5   \\\n&quot;,
       &quot;0         NaN  2.155865  2.164177  2.163407  2.159182  2.153934  2.148557   \n&quot;,
       &quot;1         NaN  2.129794  2.127907  2.124743  2.120779  2.116447  2.112078   \n&quot;,
       &quot;2         NaN  2.046943  2.051911  2.053485  2.053239  2.052194  2.050950   \n&quot;,
       &quot;3         NaN  2.029005  2.062340  2.076126  2.079747  2.078543  2.075374   \n&quot;,
       &quot;4         NaN  2.000277  2.045864  2.062064  2.064012  2.059325  2.051845   \n&quot;,
       &quot;..        ...       ...       ...       ...       ...       ...       ...   \n&quot;,
       &quot;655  1.455826  1.439353  1.402119  1.375484  1.356925  1.343494  1.333993   \n&quot;,
       &quot;656  1.477274  1.425788  1.376319  1.346838  1.329441  1.319028  1.313292   \n&quot;,
       &quot;657  1.509063  1.479084  1.457223  1.445040  1.436732  1.430826  1.427094   \n&quot;,
       &quot;658  1.480481  1.439974  1.416794  1.403691  1.394121  1.386840  1.381801   \n&quot;,
       &quot;659  1.494679  1.460397  1.441731  1.434688  1.431337  1.429968  1.430298   \n&quot;,
       &quot;\n&quot;,
       &quot;0        4.0       4.5       5.0   ...      35.5      36.0      36.5  \\\n&quot;,
       &quot;0    2.143398  2.138608  2.134239  ...       NaN       NaN       NaN   \n&quot;,
       &quot;1    2.107884  2.103977  2.100422  ...       NaN       NaN       NaN   \n&quot;,
       &quot;2    2.049814  2.048926  2.048347  ...       NaN       NaN       NaN   \n&quot;,
       &quot;3    2.071704  2.068308  2.065603  ...       NaN       NaN       NaN   \n&quot;,
       &quot;4    2.043562  2.035601  2.028615  ...       NaN       NaN       NaN   \n&quot;,
       &quot;..        ...       ...       ...  ...       ...       ...       ...   \n&quot;,
       &quot;655  1.327756  1.324277  1.323134  ...  1.499410  1.497142  1.494746   \n&quot;,
       &quot;656  1.310951  1.311175  1.313381  ...  1.515755  1.513311  1.510736   \n&quot;,
       &quot;657  1.425345  1.425352  1.426876  ...  1.562482  1.559861  1.557129   \n&quot;,
       &quot;658  1.378954  1.378166  1.379234  ...  1.543082  1.540410  1.537605   \n&quot;,
       &quot;659  1.432190  1.435510  1.440097  ...  1.617167  1.614502  1.611717   \n&quot;,
       &quot;\n&quot;,
       &quot;0        37.0      37.5      38.0      38.5      39.0      39.5      40.0  \n&quot;,
       &quot;0         NaN       NaN       NaN       NaN       NaN       NaN       NaN  \n&quot;,
       &quot;1         NaN       NaN       NaN       NaN       NaN       NaN       NaN  \n&quot;,
       &quot;2         NaN       NaN       NaN       NaN       NaN       NaN       NaN  \n&quot;,
       &quot;3         NaN       NaN       NaN       NaN       NaN       NaN       NaN  \n&quot;,
       &quot;4         NaN       NaN       NaN       NaN       NaN       NaN       NaN  \n&quot;,
       &quot;..        ...       ...       ...       ...       ...       ...       ...  \n&quot;,
       &quot;655  1.492218  1.489558  1.486763  1.483831  1.480760  1.477550  1.474197  \n&quot;,
       &quot;656  1.508030  1.505189  1.502213  1.499099  1.495847  1.492453  1.488918  \n&quot;,
       &quot;657  1.554288  1.551334  1.548267  1.545084  1.541785  1.538368  1.534832  \n&quot;,
       &quot;658  1.534664  1.531586  1.528368  1.525007  1.521501  1.517847  1.514042  \n&quot;,
       &quot;659  1.608811  1.605781  1.602625  1.599343  1.595930  1.592387  1.588710  \n&quot;,
       &quot;\n&quot;,
       &quot;[660 rows x 80 columns]&quot;
      ]
     },
     &quot;execution_count&quot;: 52,
     &quot;metadata&quot;: {},
     &quot;output_type&quot;: &quot;execute_result&quot;
    }
   ],
   &quot;source&quot;: [
    &quot;np.log(pd.to_numeric(df.iloc[:, 1:].stack(), errors=&#39;coerce&#39;).unstack())\n&quot;
   ]
  },
  {
   &quot;cell_type&quot;: &quot;markdown&quot;,
   &quot;id&quot;: &quot;9ed6bbaf-99c2-4128-b37a-ea855e6c63de&quot;,
   &quot;metadata&quot;: {},
   &quot;source&quot;: [
    &quot;pd.to_numeric(..., errors=&#39;coerce&#39;) converts anything non-numeric to NaN\n&quot;,
    &quot;\n&quot;,
    &quot;.values or .unstack() strips weird index metadata\n&quot;,
    &quot;\n&quot;,
    &quot;np.log(...) then applies safely&quot;
   ]
  }
 ],
 &quot;metadata&quot;: {
  &quot;kernelspec&quot;: {
   &quot;display_name&quot;: &quot;Python 3 (ipykernel)&quot;,
   &quot;language&quot;: &quot;python&quot;,
   &quot;name&quot;: &quot;python3&quot;
  },
  &quot;language_info&quot;: {
   &quot;codemirror_mode&quot;: {
    &quot;name&quot;: &quot;ipython&quot;,
    &quot;version&quot;: 3
   },
   &quot;file_extension&quot;: &quot;.py&quot;,
   &quot;mimetype&quot;: &quot;text/x-python&quot;,
   &quot;name&quot;: &quot;python&quot;,
   &quot;nbconvert_exporter&quot;: &quot;python&quot;,
   &quot;pygments_lexer&quot;: &quot;ipython3&quot;,
   &quot;version&quot;: &quot;3.12.10&quot;
  }
 },
 &quot;nbformat&quot;: 4,
 &quot;nbformat_minor&quot;: 5
}



This site uses Just the Docs, a documentation theme for Jekyll.