Spaces:
Sleeping
Sleeping
File size: 10,810 Bytes
74dfb56 e41e3ea 74dfb56 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 |
{
"cells": [
{
"cell_type": "code",
"execution_count": 13,
"id": "initial_id",
"metadata": {
"collapsed": true,
"ExecuteTime": {
"end_time": "2024-03-08T19:24:48.711659Z",
"start_time": "2024-03-08T19:24:48.709724Z"
}
},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np"
]
},
{
"cell_type": "code",
"outputs": [
{
"data": {
"text/plain": " Unnamed: 0 Name Ticker\n0 0 20 Microns Ltd. 20MICRONS\n1 1 360 One Wam Ltd. 360ONE\n2 2 3M India Ltd. 3MINDIA\n3 3 3P Land Holdings Ltd. 3PLAND\n4 4 3i Infotech Ltd. 3IINFOLTD",
"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>Unnamed: 0</th>\n <th>Name</th>\n <th>Ticker</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>0</td>\n <td>20 Microns Ltd.</td>\n <td>20MICRONS</td>\n </tr>\n <tr>\n <th>1</th>\n <td>1</td>\n <td>360 One Wam Ltd.</td>\n <td>360ONE</td>\n </tr>\n <tr>\n <th>2</th>\n <td>2</td>\n <td>3M India Ltd.</td>\n <td>3MINDIA</td>\n </tr>\n <tr>\n <th>3</th>\n <td>3</td>\n <td>3P Land Holdings Ltd.</td>\n <td>3PLAND</td>\n </tr>\n <tr>\n <th>4</th>\n <td>4</td>\n <td>3i Infotech Ltd.</td>\n <td>3IINFOLTD</td>\n </tr>\n </tbody>\n</table>\n</div>"
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = pd.read_csv(\"Data/Company List.csv\")\n",
"df.head()"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-03-08T19:24:48.887880Z",
"start_time": "2024-03-08T19:24:48.881294Z"
}
},
"id": "ff8275fdbab66ba3",
"execution_count": 14
},
{
"cell_type": "code",
"outputs": [],
"source": [
"l = (df[\"Ticker\"]+'.NS')[:5].to_list()\n",
"l.append(\"BHUSANSTL.NS\")"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-03-08T19:24:49.073847Z",
"start_time": "2024-03-08T19:24:49.071352Z"
}
},
"id": "8c0fc5687a75e887",
"execution_count": 15
},
{
"cell_type": "code",
"outputs": [
{
"data": {
"text/plain": "['20MICRONS.NS',\n '360ONE.NS',\n '3MINDIA.NS',\n '3PLAND.NS',\n '3IINFOLTD.NS',\n 'BHUSANSTL.NS']"
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"l"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-03-08T19:24:49.617566Z",
"start_time": "2024-03-08T19:24:49.614957Z"
}
},
"id": "f564268b1875dee3",
"execution_count": 16
},
{
"cell_type": "code",
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"[*********************100%%**********************] 1 of 1 completed\n",
"[*********************100%%**********************] 1 of 1 completed\n",
"[*********************100%%**********************] 1 of 1 completed\n",
"[*********************100%%**********************] 1 of 1 completed\n",
"[*********************100%%**********************] 1 of 1 completed\n",
"[*********************100%%**********************] 1 of 1 completed\n",
"\n",
"1 Failed download:\n",
"['BHUSANSTL.NS']: Exception('%ticker%: 1d data not available for startTime=-2208971040 and endTime=1709874000. Only 100 years worth of day granularity data are allowed to be fetched per request.')\n"
]
}
],
"source": [
"import yfinance as yf\n",
"\n",
"com_df = pd.DataFrame()\n",
"\n",
"for i in l:\n",
" com_data = yf.download(i, start=\"1900-01-01\", end=\"2024-03-08\")\n",
" \n",
" if (com_data.empty == False):\n",
" com_df[i] = pd.Series(com_data['Adj Close'], index=com_data.index)"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-03-08T19:24:53.664589Z",
"start_time": "2024-03-08T19:24:51.930859Z"
}
},
"id": "6f4b522412812a96",
"execution_count": 17
},
{
"cell_type": "code",
"outputs": [
{
"data": {
"text/plain": " 20MICRONS.NS 360ONE.NS 3MINDIA.NS 3PLAND.NS 3IINFOLTD.NS\nDate \n2008-10-06 14.736081 NaN 1210.735474 14.001053 521.733643\n2008-10-07 13.198785 NaN 1143.373535 14.646491 481.067078\n2008-10-08 11.639526 NaN 1053.750000 15.391228 432.082306\n2008-10-10 10.190077 NaN 1002.206726 12.312982 408.052063\n2008-10-13 10.826957 NaN 980.954834 10.922807 478.294373",
"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>20MICRONS.NS</th>\n <th>360ONE.NS</th>\n <th>3MINDIA.NS</th>\n <th>3PLAND.NS</th>\n <th>3IINFOLTD.NS</th>\n </tr>\n <tr>\n <th>Date</th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>2008-10-06</th>\n <td>14.736081</td>\n <td>NaN</td>\n <td>1210.735474</td>\n <td>14.001053</td>\n <td>521.733643</td>\n </tr>\n <tr>\n <th>2008-10-07</th>\n <td>13.198785</td>\n <td>NaN</td>\n <td>1143.373535</td>\n <td>14.646491</td>\n <td>481.067078</td>\n </tr>\n <tr>\n <th>2008-10-08</th>\n <td>11.639526</td>\n <td>NaN</td>\n <td>1053.750000</td>\n <td>15.391228</td>\n <td>432.082306</td>\n </tr>\n <tr>\n <th>2008-10-10</th>\n <td>10.190077</td>\n <td>NaN</td>\n <td>1002.206726</td>\n <td>12.312982</td>\n <td>408.052063</td>\n </tr>\n <tr>\n <th>2008-10-13</th>\n <td>10.826957</td>\n <td>NaN</td>\n <td>980.954834</td>\n <td>10.922807</td>\n <td>478.294373</td>\n </tr>\n </tbody>\n</table>\n</div>"
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"com_df.head()"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-03-08T19:23:54.775082Z",
"start_time": "2024-03-08T19:23:54.770174Z"
}
},
"id": "ff14463f49d5d8f4",
"execution_count": 9
},
{
"cell_type": "code",
"outputs": [],
"source": [],
"metadata": {
"collapsed": false
},
"id": "162b263160a53be2"
},
{
"cell_type": "code",
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"[*********************100%%**********************] 1 of 1 completed\n",
"[*********************100%%**********************] 1 of 1 completed\n",
"[*********************100%%**********************] 1 of 1 completed\n",
"\n",
"1 Failed download:\n",
"['BHUSANSTL.NS']: Exception('%ticker%: No price data found, symbol may be delisted (1d 2023-01-01 -> 2024-01-01)')\n",
"[*********************100%%**********************] 1 of 1 completed"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" AAPL GOOG MSFT\n",
"Date \n",
"2023-01-03 00:00:00 124.216301 89.699997 237.036026\n",
"2023-01-04 00:00:00 125.497498 88.709999 226.667297\n",
"2023-01-05 00:00:00 124.166634 86.769997 219.949371\n",
"2023-01-06 00:00:00 128.735229 88.160004 222.541565\n",
"2023-01-09 00:00:00 129.261612 88.800003 224.708313\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n"
]
}
],
"source": [
"import yfinance as yf\n",
"import pandas as pd\n",
"\n",
"def fetch_adj_close(ticker):\n",
" try:\n",
" data = yf.download(ticker, start=\"2023-01-01\", end=\"2024-01-01\")\n",
" adj_close = data['Adj Close'] # Extracting adjusted close prices\n",
" adj_close = pd.DataFrame(adj_close) # Convert Series to DataFrame\n",
" adj_close.columns = [ticker] # Rename column to ticker symbol\n",
" return adj_close\n",
" except Exception as e:\n",
" print(f\"Error fetching data for {ticker}: {e}\")\n",
" return None\n",
"\n",
"# List of tickers you want to fetch data for\n",
"tickers = [\"AAPL\", \"GOOG\", \"BHUSANSTL.NS\", \"MSFT\"]\n",
"\n",
"# Create an empty DataFrame to store the adjusted close prices\n",
"adj_close_df = pd.DataFrame()\n",
"\n",
"for ticker in tickers:\n",
" data = fetch_adj_close(ticker)\n",
" if data is not None:\n",
" adj_close_df = pd.concat([adj_close_df, data], axis=1) # Concatenate the data to the DataFrame\n",
"\n",
"# Set the date as the index\n",
"adj_close_df.index.name = 'Date'\n",
"\n",
"# Drop columns with any NaN values (i.e., for invalid tickers)\n",
"adj_close_df.dropna(axis=1, how='any', inplace=True)\n",
"\n",
"print(adj_close_df.head())\n"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-03-08T23:14:00.320054Z",
"start_time": "2024-03-08T23:14:00.259300Z"
}
},
"id": "fdb2a5f6391b0ca2",
"execution_count": 5
},
{
"cell_type": "code",
"outputs": [],
"source": [],
"metadata": {
"collapsed": false
},
"id": "b34afac23ee07c5e"
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.6"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
|