Re: [python] Nejvyšší číslo z databáze - řazení

2018-08-28 Tema obsahu Petr Messner
Dej si pozor, ať nespojuješ nesouvisející hodnoty high/low z různých
tickerů.

PM

po 27. 8. 2018 v 19:25 odesílatel  napsal:

> =  FBLL (SP100.csv) ===
>  Date TickerOpenHigh Low   Close SMA
> 0  2018-08-24AGN  186.71  187.44  185.62  186.86  168.10
> 1  2018-08-24   AMGN  196.88  197.50  195.60  196.64  183.86
> 2  2018-08-24 CL   66.55   67.01   66.34   66.88   65.53
> 3  2018-08-24DIS  111.63  112.70  111.44  111.93  105.80
> 4  2018-08-24FOX   44.71   44.78   44.52   44.58   41.81
> 5  2018-08-24   FOXA   45.25   45.36   45.15   45.17   42.24
> 6  2018-08-24 KO   45.65   45.80   45.58   45.63   44.13
> 7  2018-08-24LMT  320.00  321.39  318.72  321.29  320.01
> 8  2018-08-24 MO   59.25   59.37   58.55   58.78   57.88
> 9  2018-08-24WMT   95.09   95.66   94.35   94.95   86.88
>
>
>
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] Nejvyšší číslo z databáze - řazení

2018-08-28 Tema obsahu Petr Messner
To byla ukázka. Tahej si to z databáze, ze souboru, z web API, odkudkoliv.
to pd.read_csv vrací DataFrame. Je na tobě, jestli a jaký si uděláš jiný
způsob získání/vytvoření toho DataFrame.

Ten sloupec "n" je taky jenom pro ukázku. Měj tam sloupce jaké chceš a
dělej si s nimi, co chceš :)

PM

po 27. 8. 2018 v 19:20 odesílatel  napsal:

> Petr Messner: Děkuji moc, to vypadá slibně.
>
> Jen mám otázku k:
>
> csv_data = dedent('''\
> n;low;high;close
> 1;100;120;110
> 2;110;130;120
> 3;115;135;125
> 4;110;140;140
> 5;100;130;120
> 6;100;120;100
> 7;150;160;160
> ''')
> df = pd.read_csv(StringIO(csv_data), sep=';')
>
> .. za dedent musím hodnoty vypisovat ručně? Nelze je natáhnout z
> databáze? Nevím který "n" bude splňovat ten den podmínku. "N" se každý den
> mění.
> ___
> Python mailing list
> python@py.cz
> http://www.py.cz/mailman/listinfo/python
>
> Visit: http://www.py.cz
>
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] Nejvyšší číslo z databáze - řazení

2018-08-27 Tema obsahu radekmesner
=  FBLL (SP100.csv) ===
 Date TickerOpenHigh Low   Close SMA
0  2018-08-24AGN  186.71  187.44  185.62  186.86  168.10
1  2018-08-24   AMGN  196.88  197.50  195.60  196.64  183.86
2  2018-08-24 CL   66.55   67.01   66.34   66.88   65.53
3  2018-08-24DIS  111.63  112.70  111.44  111.93  105.80
4  2018-08-24FOX   44.71   44.78   44.52   44.58   41.81
5  2018-08-24   FOXA   45.25   45.36   45.15   45.17   42.24
6  2018-08-24 KO   45.65   45.80   45.58   45.63   44.13
7  2018-08-24LMT  320.00  321.39  318.72  321.29  320.01
8  2018-08-24 MO   59.25   59.37   58.55   58.78   57.88
9  2018-08-24WMT   95.09   95.66   94.35   94.95   86.88


Tohle se mi vypíše, když se script dokončí. Ticker a hodnoty (open,high...) se 
každý den mění, dle pravidel scriptu.
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] Nejvyšší číslo z databáze - řazení

2018-08-27 Tema obsahu radekmesner
Petr Messner: Děkuji moc, to vypadá slibně.

Jen mám otázku k:

csv_data = dedent('''\
n;low;high;close
1;100;120;110
2;110;130;120
3;115;135;125
4;110;140;140
5;100;130;120
6;100;120;100
7;150;160;160
''')
df = pd.read_csv(StringIO(csv_data), sep=';')

.. za dedent musím hodnoty vypisovat ručně? Nelze je natáhnout z databáze? 
Nevím který "n" bude splňovat ten den podmínku. "N" se každý den mění.
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] Nejvyšší číslo z databáze - řazení

2018-08-24 Tema obsahu Petr Messner
Udělal bych to takhle:
https://gist.github.com/messa/bf39800e3493896a6d8b36dabd78a87f

Je to ono?

Poznámka: náhled Jupyter notebooku v Github gistu nefunguje na mobilu,
musíte si to otevřít v plnotučném prohlížeči

PM

čt 23. 8. 2018 v 22:45 odesílatel  napsal:

> Děkuji za rady a trpělivost, kterou se mnou máte, vážím si toho :)
> Už jsem zase o kousek chytřejší, ale jen nevím, jak vypočítat ty hodnoty.
>
> Mám sloupec High, mám sloupec Low a potřeboval bych s nimi počítat.
>
> (# 100 * (Nejvyšší High za poslední 4 úsečky – Close)/(Nejvyšší High za
> poslední 4 úsečky/Nejnižší Low za poslední 4 úsečky) )
>
> Možná to vůbec nejde
> ___
> Python mailing list
> python@py.cz
> http://www.py.cz/mailman/listinfo/python
>
> Visit: http://www.py.cz
>
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] Nejvyšší číslo z databáze - řazení

2018-08-23 Tema obsahu radekmesner
Děkuji za rady a trpělivost, kterou se mnou máte, vážím si toho :)
Už jsem zase o kousek chytřejší, ale jen nevím, jak vypočítat ty hodnoty.

Mám sloupec High, mám sloupec Low a potřeboval bych s nimi počítat.

(# 100 * (Nejvyšší High za poslední 4 úsečky – Close)/(Nejvyšší High za 
poslední 4 úsečky/Nejnižší Low za poslední 4 úsečky) )

Možná to vůbec nejde
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] Nejvyšší číslo z databáze - řazení

2018-08-23 Tema obsahu starenka .
Ahoj,

udelej si dalsi sloupec, ve kterym budou ty hodnoty

df['pscore'] = df.apply(POSScore)

A pak ho vysorti pomoci sort_values, jak si delal

Ta sort fce imo neni uplne funkcni, coz pri tom mezikroku zjistis ;)

PS. Sry pisu popameti na telefonu

s.



-
'aknerats'[::-1]

On Wed, Aug 22, 2018, 23:41 Petr Messner  wrote:

> Ten kód moc smysl právě nedává. Třeba 'High'.shift(4) je blbost, string
> žádnou metodu shift nemá.
>
> Dokumentace pandas.DataFrame.sort_values je tady:
> https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.sort_values.html
>
> Vypadá to, že když chceš v pandasu sortit, tak musíš mít v nějakém sloupci
> už připravené hodnoty, podle kterých se má sortit - že to neumí vzít Python
> funkci, jako to umí normální sorted nebo list.sort v Pythonu. Což dává
> smysl, protože DataFrame je specializovaný na rychlost provádění
> numerických operací a snaží se proto právě vyhýbat volání Python funkcí pro
> každý řádek zvlášť.
>
> Unit test znamená, že vezmeš nějaký ukázkový vstup, pustíš na něj tvoji
> funkci, a výstup té funkce porovnáš s očekávaným výstupem. Podobně tak
> kdybys nám sem poslal ukázku vstupu a co si představuješ, že by mělo být
> výstupem, tak by bylo jednodušší ti poradit. Nebo jestli jedeš podle
> nějakého tutorialu, návodu apod.
>
> Je i možné, že by to v čistém Pythonu šlo snadněji než přes DataFrame, a
> až bys to rozběhal, tak potom to můžeš zkusit zmigrovat do DataFrame, pokud
> by to bylo z nějakého důvodu potřeba.
>
> PM
>
> st 22. 8. 2018 v 23:15 odesílatel  napsal:
>
>> Jirka Vejrazka: Používám sqlite3 a pandas,  tahám z yahoo finance.
>>
>> Petr Messner: Omlouvám se, nevím co nebo jak udělat unit test. Tohle je
>> konkrétní případ.
>>
>> Každý den stáhnu data z yahoo finance, naplním databázi, z které potom
>> filtruji data, které splňují podmínku (- vypíše konkrétní položky) a ty
>> chci právě seřadit podle "PositionScore".
>>  Snad to dává aspoň trochu smysl.
>> ___
>> Python mailing list
>> python@py.cz
>> http://www.py.cz/mailman/listinfo/python
>>
>> Visit: http://www.py.cz
>>
> ___
> Python mailing list
> python@py.cz
> http://www.py.cz/mailman/listinfo/python
>
> Visit: http://www.py.cz
>
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] Nejvyšší číslo z databáze - řazení

2018-08-22 Tema obsahu Petr Messner
Ten kód moc smysl právě nedává. Třeba 'High'.shift(4) je blbost, string
žádnou metodu shift nemá.

Dokumentace pandas.DataFrame.sort_values je tady:
https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.sort_values.html

Vypadá to, že když chceš v pandasu sortit, tak musíš mít v nějakém sloupci
už připravené hodnoty, podle kterých se má sortit - že to neumí vzít Python
funkci, jako to umí normální sorted nebo list.sort v Pythonu. Což dává
smysl, protože DataFrame je specializovaný na rychlost provádění
numerických operací a snaží se proto právě vyhýbat volání Python funkcí pro
každý řádek zvlášť.

Unit test znamená, že vezmeš nějaký ukázkový vstup, pustíš na něj tvoji
funkci, a výstup té funkce porovnáš s očekávaným výstupem. Podobně tak
kdybys nám sem poslal ukázku vstupu a co si představuješ, že by mělo být
výstupem, tak by bylo jednodušší ti poradit. Nebo jestli jedeš podle
nějakého tutorialu, návodu apod.

Je i možné, že by to v čistém Pythonu šlo snadněji než přes DataFrame, a až
bys to rozběhal, tak potom to můžeš zkusit zmigrovat do DataFrame, pokud by
to bylo z nějakého důvodu potřeba.

PM

st 22. 8. 2018 v 23:15 odesílatel  napsal:

> Jirka Vejrazka: Používám sqlite3 a pandas,  tahám z yahoo finance.
>
> Petr Messner: Omlouvám se, nevím co nebo jak udělat unit test. Tohle je
> konkrétní případ.
>
> Každý den stáhnu data z yahoo finance, naplním databázi, z které potom
> filtruji data, které splňují podmínku (- vypíše konkrétní položky) a ty
> chci právě seřadit podle "PositionScore".
>  Snad to dává aspoň trochu smysl.
> ___
> Python mailing list
> python@py.cz
> http://www.py.cz/mailman/listinfo/python
>
> Visit: http://www.py.cz
>
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] Nejvyšší číslo z databáze - řazení

2018-08-22 Tema obsahu radekmesner
Jirka Vejrazka: Používám sqlite3 a pandas,  tahám z yahoo finance.

Petr Messner: Omlouvám se, nevím co nebo jak udělat unit test. Tohle je 
konkrétní případ. 

Každý den stáhnu data z yahoo finance, naplním databázi, z které potom filtruji 
data, které splňují podmínku (- vypíše konkrétní položky) a ty chci právě 
seřadit podle "PositionScore".
 Snad to dává aspoň trochu smysl.
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] Nejvyšší číslo z databáze - řazení

2018-08-22 Tema obsahu Petr Messner
Na první pohled to vypadá na nějaký Pandas. 

Radku, neměl bys raději nějaký příklad, s konkrétními hodnotami, na kterém by 
bylo vidět, co to má dělat? :) (prostě unit test)

Petr Messner

22. 8. 2018 v 21:12, Jirka Vejrazka :

> Promin, tohle je syntaxe, kterou jsem nikdy nevidel. Mohl bys napsat, jakou 
> databazi pouzivas a jakou knihovnu pro tahani dat?
> 
>   Jirka
> 
>> On Wed, 22 Aug 2018 at 21:00,  wrote:
>> Dobrý den,
>> mám tady další problém, který se mi nedaří rozluštit.
>> 
>> Mám určitou databázi dat a ty data, které splňují určité podmínky se mi 
>> vypisují. 
>> 
>> Tyto vypsané data bych chtěl ještě seřadit dle dalšího kritéria. Jenže 
>> nedaří se. Viz níže kód.
>> 
>> Co dělám špatně?
>> 
>> 
>> # 100 * (Nejvyšší High za poslední 4 úsečky – Close)/(Nejvyšší High za 
>> poslední 4 úsečky/Nejnižší Low za poslední 4 úsečky)
>> 
>> # výpočet PositionScore
>> def POSscore (data):
>>   val = 100 * (max(data['High'.shift(4)]) 
>> - 'Close')/(max(data['High'.shift(4)]) / (min(data['High']))
>> 
>>   return val
>> 
>> fbll = fbll.sort_values(by=['POSscore'], ascending=False)
>> 
>> Děkuji za případnou další pomoc.
>> ___
>> Python mailing list
>> python@py.cz
>> http://www.py.cz/mailman/listinfo/python
>> 
>> Visit: http://www.py.cz
> ___
> Python mailing list
> python@py.cz
> http://www.py.cz/mailman/listinfo/python
> 
> Visit: http://www.py.cz
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] Nejvyšší číslo z databáze - řazení

2018-08-22 Tema obsahu Jirka Vejrazka
Promin, tohle je syntaxe, kterou jsem nikdy nevidel. Mohl bys napsat, jakou
databazi pouzivas a jakou knihovnu pro tahani dat?

  Jirka

On Wed, 22 Aug 2018 at 21:00,  wrote:

> Dobrý den,
> mám tady další problém, který se mi nedaří rozluštit.
>
> Mám určitou databázi dat a ty data, které splňují určité podmínky se mi
> vypisují.
>
> Tyto vypsané data bych chtěl ještě seřadit dle dalšího kritéria. Jenže
> nedaří se. Viz níže kód.
>
> Co dělám špatně?
>
>
> # 100 * (Nejvyšší High za poslední 4 úsečky – Close)/(Nejvyšší High za
> poslední 4 úsečky/Nejnižší Low za poslední 4 úsečky)
>
> # výpočet PositionScore
> def POSscore (data):
>   val = 100 * (max(data['High'.shift(4)])
> - 'Close')/(max(data['High'.shift(4)]) / (min(data['High']))
>
>   return val
>
> fbll = fbll.sort_values(by=['POSscore'], ascending=False)
>
> Děkuji za případnou další pomoc.
> ___
> Python mailing list
> python@py.cz
> http://www.py.cz/mailman/listinfo/python
>
> Visit: http://www.py.cz
>
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz