# -*- coding: utf-8 -*-
"""
Created on Mon Nov 22 20:12:41 2021

@author: guna3
"""

# PTSA Project
# Gathering data for NIFTY 500 companies

#%%
import pandas as pd
import yfinance
from datetime import date
import nsepy as nse
from tqdm import tqdm
from pandas_datareader import data

#%%
comp = pd.read_excel(
    r"C:\Users\gduremanthi.ext\Desktop\Learnings\College\PTSA Project Sem 3\Quartile1.xlsx"
)

nifty500_list = list(comp["Ticker"])
data1 = nse.get_history(
    nifty500_list[0], start=date(2019, 11, 21), end=date(2021, 11, 21)
)
company_data = pd.DataFrame(columns=nifty500_list, index=data1.index)
company_data[nifty500_list[0]] = data1["Prev Close"]

for company in tqdm(nifty500_list, ascii="123456789#"):
    comp_data = nse.get_history(
        company, start=date(2020, 5, 10), end=date(2021, 11, 22)
    )
    company_data[company] = comp_data["Prev Close"]

company_data = company_data.loc[company_data.index >= date(2020, 5, 10), :]
nifty_data = nse.get_history(
    "NIFTY 500", start=date(2021, 3, 24), end=date(2021, 11, 21), index=True
)
nifty_data.to_excel(r"C:\Users\guna3\Desktop\PTSA_Data_index.xlsx")
yfinance.download(
    "PVR.NS", start=date(2019, 11, 21), end=date(2021, 11, 21), interval="1d"
)["Adj Close"].isnull().all()
nan_comp = company_data.columns[company_data.isnull().all()].to_list()
second_nan = []

for nan in nan_comp:
    national = yfinance.download(
        nan + ".NS", start=date(2019, 11, 21), end=date(2021, 11, 21), interval="1d"
    )["Adj Close"]
    bombay = yfinance.download(
        nan + ".BO", start=date(2019, 11, 21), end=date(2021, 11, 21), interval="1d"
    )["Adj Close"]
    if national.isnull().all() == False:
        company_data[nan] = national

    elif bombay.isnull().all() == False:
        company_data[nan] = bombay

    else:
        second_nan.append(nan)

for i in list(company_data.columns):
    try:
        company_data[i] = company_data[i].interpolate()
    except:
        print(i)

mcaps = {}
market_cap = int(data.get_quote_yahoo("3MINDIA.NS")["marketCap"])
ticker = "3MINDIA"
mcaps[ticker] = market_cap

for ticker in tqdm(nifty500_list, ascii="123456789#"):
    ticker1 = ticker + ".BO"
    try:
        mcaps[ticker] = int(data.get_quote_yahoo(ticker1)["marketCap"])
    except:
        pass

nan_comp = []
for i in nifty500_list:
    if i not in list(mcaps.keys()):
        nan_comp.append(i)

for ticker in tqdm(nan_comp, ascii="123456789#"):
    ticker1 = ticker + ".NS"
    try:
        mcaps[ticker] = int(data.get_quote_yahoo(ticker1)["marketCap"])
    except:
        pass

mcaps_dat = pd.DataFrame.from_dict(mcaps, orient="index").reset_index()
mcaps_dat.columns = ["Ticker", "Market Cap"]
mcaps_dat.to_excel(r"C:\Users\guna3\Desktop\PTSA_Data_mcaps.xlsx")

quartile1 = company_data.iloc[:, 0 : int(round(len(company_data.columns) / 4, 0))]
quartile1 = quartile1.loc[(quartile1.index >= date(2021, 3, 24)), :]
company_data = company_data.loc[(company_data.index >= date(2021, 3, 24)), :]
