-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.py
67 lines (51 loc) · 2.09 KB
/
app.py
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
from csv import excel
import pandas as pd
import yfinance as yf
from datetime import date
from io import BytesIO
import streamlit as st
st.set_page_config(page_title='Hisse Senedi Grafiği')
# Hisse senetleri listesi
# CSV dosyasını okuma
df = pd.read_csv(r'C:\Users\LENOVO\PycharmProjects\finansalveri\name.csv',encoding='windows-1254',delimiter=';')
# Şirketler ve Kodlar ile bir sözlük oluşturma
stocks = dict(zip(df['sembol'], df['sembol_kodu']))
# Kullanıcının hisse senedi seçmesi için selectbox
sembol = st.sidebar.selectbox("Hisse Senedi Seçiniz", options=list(stocks.keys()))
sembol_kodu = stocks[sembol]
st.title(f"{sembol} ({sembol_kodu}) Hisse Senedi Grafiği")
start_date = st.sidebar.date_input('Başlangıç Tarihi', value=date(2023, 1, 1))
end_date = st.sidebar.date_input('Bitiş Tarihi', value=date.today())
# Tarih kontrolü
if start_date > end_date:
st.error('Başlangıç tarihi bitiş tarihinden sonra olamaz.')
else:
# Veri çekme işlemi
df = yf.download(sembol_kodu, start=start_date, end=end_date)
if df.empty:
st.warning('Seçilen sembol ve tarih aralığı için veri bulunamadı.')
else:
# Zaman dilimi bilgisini kaldırma
df.index = df.index.tz_localize(None)
# Veri çerçevesini gösterme
st.subheader('Hisse Senedi Verileri')
st.write(df)
# Grafik çizme
st.subheader('Kapanış Fiyatı Grafiği')
st.line_chart(df['Close'])
# Excel dosyasını indirme
st.subheader('Hisse Senedi Verileri Excel Dosyası')
def to_excel(df):
output = BytesIO()
writer = pd.ExcelWriter(output, engine='xlsxwriter')
df.to_excel(writer, index=True, sheet_name='Sheet1')
writer.close()
processed_data = output.getvalue()
return processed_data
excel_data = to_excel(df)
st.download_button(
label='Excel olarak indir',
data=excel_data,
file_name=f'{sembol_kodu}_data.xlsx',
mime='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
)