{"cells":[{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"cell_type":"code","source":"# This Python 3 environment comes with many helpful analytics libraries installed\n# It is defined by the kaggle/python docker image: https://github.com/kaggle/docker-python\n# For example, here's several helpful packages to load in \n\nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n\n# Input data files are available in the \"../input/\" directory.\n# For example, running this (by clicking run or pressing Shift+Enter) will list the files in the input directory\n\nimport os\nprint(os.listdir(\"../input\"))\n\n# Any results you write to the current directory are saved as output.","execution_count":81,"outputs":[{"output_type":"stream","text":"['test.csv', 'mulliken_charges.csv', 'dipole_moments.csv', 'train.csv', 'structures.csv', 'magnetic_shielding_tensors.csv', 'potential_energy.csv', 'sample_submission.csv', 'scalar_coupling_contributions.csv', 'structures']\n","name":"stdout"}]},{"metadata":{"_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","trusted":true},"cell_type":"code","source":"df_train = pd.read_csv(\"../input/train.csv\") ","execution_count":82,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"df_train.shape","execution_count":83,"outputs":[{"output_type":"execute_result","execution_count":83,"data":{"text/plain":"(4658147, 6)"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"df_train.head()","execution_count":84,"outputs":[{"output_type":"execute_result","execution_count":84,"data":{"text/plain":"   id           ...            scalar_coupling_constant\n0   0           ...                             84.8076\n1   1           ...                            -11.2570\n2   2           ...                            -11.2548\n3   3           ...                            -11.2543\n4   4           ...                             84.8074\n\n[5 rows x 6 columns]","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>id</th>\n      <th>molecule_name</th>\n      <th>atom_index_0</th>\n      <th>atom_index_1</th>\n      <th>type</th>\n      <th>scalar_coupling_constant</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>0</td>\n      <td>dsgdb9nsd_000001</td>\n      <td>1</td>\n      <td>0</td>\n      <td>1JHC</td>\n      <td>84.8076</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>1</td>\n      <td>dsgdb9nsd_000001</td>\n      <td>1</td>\n      <td>2</td>\n      <td>2JHH</td>\n      <td>-11.2570</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>2</td>\n      <td>dsgdb9nsd_000001</td>\n      <td>1</td>\n      <td>3</td>\n      <td>2JHH</td>\n      <td>-11.2548</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>3</td>\n      <td>dsgdb9nsd_000001</td>\n      <td>1</td>\n      <td>4</td>\n      <td>2JHH</td>\n      <td>-11.2543</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>4</td>\n      <td>dsgdb9nsd_000001</td>\n      <td>2</td>\n      <td>0</td>\n      <td>1JHC</td>\n      <td>84.8074</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"**Molecule Name column exploration**"},{"metadata":{"trusted":true},"cell_type":"code","source":"molecule_name_counts = df_train[\"molecule_name\"].value_counts()\nmolecule_name_counts","execution_count":85,"outputs":[{"output_type":"execute_result","execution_count":85,"data":{"text/plain":"dsgdb9nsd_042139    135\ndsgdb9nsd_123246    133\ndsgdb9nsd_096580    133\ndsgdb9nsd_116493    132\ndsgdb9nsd_121391    132\ndsgdb9nsd_122665    132\ndsgdb9nsd_123139    132\ndsgdb9nsd_122958    131\ndsgdb9nsd_095826    131\ndsgdb9nsd_041896    131\ndsgdb9nsd_041811    131\ndsgdb9nsd_122006    131\ndsgdb9nsd_101816    130\ndsgdb9nsd_096544    130\ndsgdb9nsd_122877    130\ndsgdb9nsd_115379    130\ndsgdb9nsd_121108    130\ndsgdb9nsd_122135    130\ndsgdb9nsd_121910    129\ndsgdb9nsd_101671    129\ndsgdb9nsd_116445    129\ndsgdb9nsd_101473    129\ndsgdb9nsd_060337    129\ndsgdb9nsd_086461    129\ndsgdb9nsd_115499    129\ndsgdb9nsd_118466    128\ndsgdb9nsd_095756    128\ndsgdb9nsd_116289    128\ndsgdb9nsd_117715    128\ndsgdb9nsd_091753    128\n                   ... \ndsgdb9nsd_130552      3\ndsgdb9nsd_000790      3\ndsgdb9nsd_008722      3\ndsgdb9nsd_130668      3\ndsgdb9nsd_008960      3\ndsgdb9nsd_133436      3\ndsgdb9nsd_130838      3\ndsgdb9nsd_130817      3\ndsgdb9nsd_023877      3\ndsgdb9nsd_131996      3\ndsgdb9nsd_000027      3\ndsgdb9nsd_123324      3\ndsgdb9nsd_130848      3\ndsgdb9nsd_130790      3\ndsgdb9nsd_000778      3\ndsgdb9nsd_132852      3\ndsgdb9nsd_123289      3\ndsgdb9nsd_021429      3\ndsgdb9nsd_008978      3\ndsgdb9nsd_132240      3\ndsgdb9nsd_014583      3\ndsgdb9nsd_021849      2\ndsgdb9nsd_003946      2\ndsgdb9nsd_133421      2\ndsgdb9nsd_000005      2\ndsgdb9nsd_132228      2\ndsgdb9nsd_000828      2\ndsgdb9nsd_021441      2\ndsgdb9nsd_133445      2\ndsgdb9nsd_000003      1\nName: molecule_name, Length: 85003, dtype: int64"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"print(\"Max: \" + molecule_name_counts.idxmax() + \": \" + str(molecule_name_counts[molecule_name_counts.idxmax]))\nprint(\"Min: \" + molecule_name_counts.idxmin() + \": \" + str(molecule_name_counts[molecule_name_counts.idxmin]))","execution_count":86,"outputs":[{"output_type":"stream","text":"Max: dsgdb9nsd_042139: 135\nMin: dsgdb9nsd_000003: 1\n","name":"stdout"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"molecule_str = pd.DataFrame(molecule_name_counts.keys().str.split(\"_\").tolist(), columns=[\"str\", \"digit\"])","execution_count":87,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"molecule_str.head()","execution_count":88,"outputs":[{"output_type":"execute_result","execution_count":88,"data":{"text/plain":"         str   digit\n0  dsgdb9nsd  042139\n1  dsgdb9nsd  123246\n2  dsgdb9nsd  096580\n3  dsgdb9nsd  116493\n4  dsgdb9nsd  121391","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>str</th>\n      <th>digit</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>dsgdb9nsd</td>\n      <td>042139</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>dsgdb9nsd</td>\n      <td>123246</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>dsgdb9nsd</td>\n      <td>096580</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>dsgdb9nsd</td>\n      <td>116493</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>dsgdb9nsd</td>\n      <td>121391</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"molecule_str[\"str\"].value_counts()","execution_count":89,"outputs":[{"output_type":"execute_result","execution_count":89,"data":{"text/plain":"dsgdb9nsd    85003\nName: str, dtype: int64"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"Seems like the string is actually the same every where, so we can easily consider it as useless for now. Of course, we should check if this is the case in the test set as well. \nLet us append the \"digit\" column to the main test_df"},{"metadata":{"trusted":true},"cell_type":"code","source":"molecule_str_train = pd.DataFrame(df_train[\"molecule_name\"].str.split(\"_\").tolist(), columns=[\"str\", \"digit\"])\ndf_train[\"molecule_digit\"] = molecule_str_train[\"digit\"]","execution_count":90,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"df_train.head()","execution_count":91,"outputs":[{"output_type":"execute_result","execution_count":91,"data":{"text/plain":"   id     molecule_name       ...        scalar_coupling_constant  molecule_digit\n0   0  dsgdb9nsd_000001       ...                         84.8076          000001\n1   1  dsgdb9nsd_000001       ...                        -11.2570          000001\n2   2  dsgdb9nsd_000001       ...                        -11.2548          000001\n3   3  dsgdb9nsd_000001       ...                        -11.2543          000001\n4   4  dsgdb9nsd_000001       ...                         84.8074          000001\n\n[5 rows x 7 columns]","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>id</th>\n      <th>molecule_name</th>\n      <th>atom_index_0</th>\n      <th>atom_index_1</th>\n      <th>type</th>\n      <th>scalar_coupling_constant</th>\n      <th>molecule_digit</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>0</td>\n      <td>dsgdb9nsd_000001</td>\n      <td>1</td>\n      <td>0</td>\n      <td>1JHC</td>\n      <td>84.8076</td>\n      <td>000001</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>1</td>\n      <td>dsgdb9nsd_000001</td>\n      <td>1</td>\n      <td>2</td>\n      <td>2JHH</td>\n      <td>-11.2570</td>\n      <td>000001</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>2</td>\n      <td>dsgdb9nsd_000001</td>\n      <td>1</td>\n      <td>3</td>\n      <td>2JHH</td>\n      <td>-11.2548</td>\n      <td>000001</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>3</td>\n      <td>dsgdb9nsd_000001</td>\n      <td>1</td>\n      <td>4</td>\n      <td>2JHH</td>\n      <td>-11.2543</td>\n      <td>000001</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>4</td>\n      <td>dsgdb9nsd_000001</td>\n      <td>2</td>\n      <td>0</td>\n      <td>1JHC</td>\n      <td>84.8074</td>\n      <td>000001</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"**Scalar coupling constant**"},{"metadata":{"trusted":true},"cell_type":"code","source":"print(\"Max: \" + str(df_train[\"scalar_coupling_constant\"].loc[df_train[\"scalar_coupling_constant\"].idxmax()]))\nprint(\"Min: \" + str(df_train[\"scalar_coupling_constant\"].loc[df_train[\"scalar_coupling_constant\"].idxmin()]))","execution_count":92,"outputs":[{"output_type":"stream","text":"Max: 204.88\nMin: -36.2186\n","name":"stdout"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"plt.figure(figsize=(15,20))\ndf_train[\"scalar_coupling_constant\"].plot.hist(bins=range(-50, 240, 10))","execution_count":93,"outputs":[{"output_type":"execute_result","execution_count":93,"data":{"text/plain":"<matplotlib.axes._subplots.AxesSubplot at 0x7f488cec5f28>"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"<Figure size 1080x1440 with 1 Axes>","image/png":"iVBORw0KGgoAAAANSUhEUgAAA5cAAARiCAYAAAAwbQPBAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzs3X/srndd3/HX21YU5oQiZ4y03Q5i41bdVssRSYyZSoQC0cLCHGaTxhBqYskk8w8qMYOoSzCZsrEoEaShMCciMOkChhQkmv3Bj4MSyo+ZniiOVoQzihR/BEb57I9znfltOafne86L+xy+7eOR3Ple9/u67uv6nP73zHXfV2etFQAAAGh8zYVeAAAAAAefuAQAAKAmLgEAAKiJSwAAAGriEgAAgJq4BAAAoCYuAQAAqIlLAAAAauISAACAmrgEAACgdvGFXsBXu0c96lHr8OHDF3oZAAAAF8T73//+/7PWOnSm48TlGRw+fDhHjx690MsAAAC4IGbmT/dznK/FAgAAUBOXAAAA1MQlAAAANXEJAABATVwCAABQE5cAAADUxCUAAAA1cQkAAEBNXAIAAFATlwAAANTEJQAAADVxCQAAQE1cAgAAUBOXAAAA1MQlAAAANXEJAABATVwCAABQE5cAAADUxCUAAAA1cQkAAEBNXAIAAFATlwAAANTEJQAAADVxCQAAQG1ncTkzl8/Mu2bmIzPz4Zn5yW3+kpm5c2Y+sL2etuczPz0zx2bmj2bmKXvm12yzYzNz4575Y2fmPdv8N2fmIdv867b3x7b9h890DQAAAM7dLu9cfjHJT621rkzyxCQ3zMyV276XrbWu2l5vS5Jt37OTfFuSa5L8ysxcNDMXJfnlJE9NcmWSH9lznl/YzvUtST6T5Lnb/LlJPrPNX7Ydd9pr7O4/AQAAwIPDzuJyrfWJtdYfbNufS/LRJJfez0euTfL6tdbn11p/kuRYkidsr2NrrT9ea30hyeuTXDszk+T7k7xx+/zNSZ6x51w3b9tvTPKk7fjTXQMAAIDCefnN5fa11O9I8p5t9PyZ+eDM3DQzl2yzS5N8fM/H7thmp5t/U5K/WGt98T7ze51r2//Z7fjTnQsAAIDCzuNyZr4hyZuSvGCtdXeSVyR5XJKrknwiyS/ueg1na2aun5mjM3P0+PHjF3o5AAAAX/V2Gpcz87U5EZa/vtZ6c5KstT651rpnrfWlJK/K334t9c4kl+/5+GXb7HTzTyd5xMxcfJ/5vc617X/4dvzpznUva61XrrWOrLWOHDp06Fz+6QAAAA8qu3xa7CR5dZKPrrV+ac/8MXsOe2aSD23btyR59vak18cmuSLJe5O8L8kV25NhH5ITD+S5Za21krwrybO2z1+X5C17znXdtv2sJL+7HX+6awAAAFC4+MyHnLPvTvKjSW6bmQ9ssxflxNNer0qyknwsyY8nyVrrwzPzhiQfyYknzd6w1ronSWbm+UnenuSiJDettT68ne+FSV4/Mz+f5A9zImaz/X3dzBxLcldOBOn9XgMAAIBzNydu6HE6R44cWUePHr3QywAAALggZub9a60jZzruvDwtFgAAgAc2cQkAAEBNXAIAAFATlwAAANTEJQAAADVxCQAAQE1cAgAAUBOXAAAA1MQlAAAANXEJAABATVwCAABQE5cAAADUxCUAAAA1cQkAAEBNXAIAAFATlwAAANQuvtALAL7yDt/41vN2rY+99Onn7VoAAHz1cucSAACAmrgEAACgJi4BAACoiUsAAABq4hIAAICauAQAAKAmLgEAAKiJSwAAAGriEgAAgJq4BAAAoCYuAQAAqIlLAAAAauISAACAmrgEAACgJi4BAACoiUsAAABq4hIAAICauAQAAKAmLgEAAKiJSwAAAGriEgAAgJq4BAAAoCYuAQAAqIlLAAAAauISAACAmrgEAACgJi4BAACoiUsAAABq4hIAAICauAQAAKAmLgEAAKiJSwAAAGriEgAAgJq4BAAAoCYuAQAAqIlLAAAAauISAACAmrgEAACgJi4BAACoiUsAAABq4hIAAICauAQAAKAmLgEAAKiJSwAAAGriEgAAgJq4BAAAoCYuAQAAqIlLAAAAauISAACAmrgEAACgJi4BAACoiUsAAABq4hIAAICauAQAAKAmLgEAAKiJSwAAAGriEgAAgJq4BAAAoCYuAQAAqIlLAAAAauISAACAmrgEAACgJi4BAACoiUsAAABq4hIAAICauAQAAKAmLgEAAKiJSwAAAGriEgAAgJq4BAAAoCYuAQAAqIlLAAAAauISAACAmrgEAACgJi4BAACoiUsAAABq4hIAAICauAQAAKAmLgEAAKiJSwAAAGriEgAAgJq4BAAAoCYuAQAAqIlLAAAAauIS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c0netx33s2utkw8J+omceCLtQ5P8zvbK2V4DAACA3s7icq31I6fZ9aRTHLuS3HCa89yU5KZTzI8m+fZTzD99ttcAAACgc8Ee6AMAAMADh7gEAACgJi4BAACoiUsAAABq4hIAAICauAQAAKAmLgEAAKiJSwAAAGriEgAAgJq4BAAAoCYuAQAAqIlLAAAAauISAACAmrgEAACgJi4BAACoiUsAAABq4hIAAICauAQAAKAmLgEAAKiJSwAAAGriEgAAgJq4BAAAoCYuAQAAqIlLAAAAauISAACAmrgEAACgJi4BAACoiUsAAABq4hIAAICauAQAAKAmLgEAAKiJSwAAAGriEgAAgJq4BAAAoCYuAQAAqIlLAAAAauISAACAmrgEAACgJi4BAACoiUsAAABq4hIAAICauAQAAKAmLgEAAKiJSwAAAGriEgAAgJq4BAAAoCYuAQAAqIlLAAAAauISAACAmrgEAACgJi4BAACoiUsAAABq4hIAAICauAQAAKAmLgEAAKiJSwAAAGriEgAAgJq4BAAAoCYuAQAAqIlLAAAAauISAACAmrgEAACgJi4BAACoiUsAAABq4hIAAICauAQAAKAmLgEAAKiJSwAAAGriEgAAgJq4BAAAoCYuAQAAqIlLAAAAauISAACAmrgEAACgJi4BAACoiUsAAABq4hIAAICauAQAAKAmLgEAAKiJSwAAAGriEgAAgJq4BAAAoCYuAQAAqIlLAAAAauISAACAmrgEAACgJi4BAACoiUsAAABq4hIAAICauAQAAKAmLgEAAKiJSwAAAGriEgAAgJq4BAAAoCYuAQAAqIlLAAAAauISAACAmrgEAACgJi4BAACoiUsAAABq4hIAAICauAQAAKAmLgEAAKiJSwAAAGriEgAAgJq4BAAAoCYuAQAAqIlLAAAAauISAACAmrgEAACgJi4BAACoiUsAAABq4hIAAICauAQAAKAmLgEAAKiJSwAAAGriEgAAgJq4BAAAoCYuAQAAqIlLAAAAauISAACAmrgEAACgJi4BAACoiUsAAABq4hIAAICauAQAAKAmLgEAAKiJSwAAAGriEgAAgJq4BAAAoCYuAQAAqIlLAAAAauISAACAmrgEAACgJi4BAACoiUsAAABq4hIAAICauAQAAKAmLgEAAKiJSwAAAGriEgAAgJq4BAAAoCYuAQAAqIlLAAAA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\n"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"Most values are around 0. It is interesting how there is almost no value between 20 & 70, then grouped around 70. Then no values between 150 & 190. Let us check this. "},{"metadata":{"trusted":true},"cell_type":"code","source":"# Check values between 20 & 70. \nplt.figure(figsize=(15,20))\ndf_train.loc[ (df_train[\"scalar_coupling_constant\"] > 20) & (df_train[\"scalar_coupling_constant\"] < 70)][\"scalar_coupling_constant\"].plot.hist(bins=range(20, 70, 10))","execution_count":94,"outputs":[{"output_type":"execute_result","execution_count":94,"data":{"text/plain":"<matplotlib.axes._subplots.AxesSubplot at 0x7f492de77208>"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"<Figure size 1080x1440 with 1 Axes>","image/png":"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\n"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"Counts are much less than the global hist, but values are still represented. "},{"metadata":{"trusted":true},"cell_type":"code","source":"# Check values between 20 & 70. \nplt.figure(figsize=(15,20))\ndf_train.loc[ (df_train[\"scalar_coupling_constant\"] > 150) & (df_train[\"scalar_coupling_constant\"] < 190)][\"scalar_coupling_constant\"].plot.hist(bins=range(150, 190, 10))","execution_count":95,"outputs":[{"output_type":"execute_result","execution_count":95,"data":{"text/plain":"<matplotlib.axes._subplots.AxesSubplot at 0x7f492d5a9240>"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"<Figure size 1080x1440 with 1 Axes>","image/png":"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\n"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"The difference is much more visible here. Only 200 vals between 150 & 160, & less than 20 for higher vals. "},{"metadata":{},"cell_type":"markdown","source":"**Type column exploration**"},{"metadata":{"trusted":true},"cell_type":"code","source":"from matplotlib import pyplot as plt\nplt.figure(figsize=(15,20))\ndf_train[\"type\"].value_counts().plot.bar()","execution_count":96,"outputs":[{"output_type":"execute_result","execution_count":96,"data":{"text/plain":"<matplotlib.axes._subplots.AxesSubplot at 0x7f492a8b8a90>"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"<Figure size 1080x1440 with 1 Axes>","image/png":"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\n"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"**Structure File**"},{"metadata":{"trusted":true},"cell_type":"code","source":"struct_df = pd.read_csv(\"../input/structures.csv\")","execution_count":99,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"struct_df.shape","execution_count":100,"outputs":[{"output_type":"execute_result","execution_count":100,"data":{"text/plain":"(2358657, 6)"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"display(struct_df.head())","execution_count":101,"outputs":[{"output_type":"display_data","data":{"text/plain":"      molecule_name  atom_index atom         x         y         z\n0  dsgdb9nsd_000001           0    C -0.012698  1.085804  0.008001\n1  dsgdb9nsd_000001           1    H  0.002150 -0.006031  0.001976\n2  dsgdb9nsd_000001           2    H  1.011731  1.463751  0.000277\n3  dsgdb9nsd_000001           3    H -0.540815  1.447527 -0.876644\n4  dsgdb9nsd_000001           4    H -0.523814  1.437933  0.906397","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>molecule_name</th>\n      <th>atom_index</th>\n      <th>atom</th>\n      <th>x</th>\n      <th>y</th>\n      <th>z</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>dsgdb9nsd_000001</td>\n      <td>0</td>\n      <td>C</td>\n      <td>-0.012698</td>\n      <td>1.085804</td>\n      <td>0.008001</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>dsgdb9nsd_000001</td>\n      <td>1</td>\n      <td>H</td>\n      <td>0.002150</td>\n      <td>-0.006031</td>\n      <td>0.001976</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>dsgdb9nsd_000001</td>\n      <td>2</td>\n      <td>H</td>\n      <td>1.011731</td>\n      <td>1.463751</td>\n      <td>0.000277</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>dsgdb9nsd_000001</td>\n      <td>3</td>\n      <td>H</td>\n      <td>-0.540815</td>\n      <td>1.447527</td>\n      <td>-0.876644</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>dsgdb9nsd_000001</td>\n      <td>4</td>\n      <td>H</td>\n      <td>-0.523814</td>\n      <td>1.437933</td>\n      <td>0.906397</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"To be continued..."}],"metadata":{"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"},"language_info":{"name":"python","version":"3.6.4","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat":4,"nbformat_minor":1}