Vinnaren i pepparkakshustävlingen!
2017-08-16, 23:56
  #1513
Medlem
Astalons avatar
Jag håller på att försöka implementera en investeringsstrategi i python och använder mig bland annat av biblioteket Pandas.

Jag har en dataframe med bland annat en kolumn, kalla den
Kod:
dataframe['ATR'
med värden. Jag vill skapa en kolumn som består av booleska värden, dvs True eller False. Jag vill att den på dag 'i' skall vara true om och endast om
Kod:
dataframe['ATR'
för dagen 'i' är i top 30% av de senaste 100 dagars värde för
Kod:
dataframe['ATR'
.

Ber om ursäkt för formuleringen, känns diffus. Känns som att man kan göra detta på något snyggt sätt mha en for-loop men kommer inte på något sätt.

All hjälp uppskattas!
Citera
2017-08-17, 07:56
  #1514
Moderator
vhes avatar
Citat:
Ursprungligen postat av Astalon
Jag håller på att försöka implementera en investeringsstrategi i python och använder mig bland annat av biblioteket Pandas.

Jag har en dataframe med bland annat en kolumn, kalla den
Kod:
dataframe['ATR'
med värden. Jag vill skapa en kolumn som består av booleska värden, dvs True eller False. Jag vill att den på dag 'i' skall vara true om och endast om
Kod:
dataframe['ATR'
för dagen 'i' är i top 30% av de senaste 100 dagars värde för
Kod:
dataframe['ATR'
.

Ber om ursäkt för formuleringen, känns diffus. Känns som att man kan göra detta på något snyggt sätt mha en for-loop men kommer inte på något sätt.

All hjälp uppskattas!

Jag antar att du har en lista med sånna här "dataframes"? I så fall får du ju börja med att hitta top 30%. Om vi antar att dina 100 frames ligger i listan frames:

Kod:
top30 = sorted(frame['ATTR'] for frame in frames)[70:]

Koden ovan bygger en ny lista med ATTR ur varje frame, sorterar den, och plockar ut de 30 sista elementen (givet att listan är 100 element lång).


Därefter får du bygga en ny lista, eller populera sånna där frames (antar att man kan sätta element i dem på samma sätt som en dict?).

Ny lista:
Kod:
L = []
for frame in frames:
  L.append(frame['ATTR'] in top30)

Pluppa in nytt attribut i sånna där frames (om man nu kan göra så):
Kod:
for frame in frames:
    frame['TOP30'] = frame['ATTR'] in top30

Gemensamt för båda styckena ovan är att frame['ATTR'] in top30 kommer bli True om värdet ligger i top30-listan. Annars blir det False.

Du kan roa dig med att förbättra koden genom att bara plocka ut det lägsta elementet ur top30, och sedan jämföra med det för att avgöra om ett element är med i top 30. Det kommer vara effektivare.
Citera
2017-11-07, 20:34
  #1515
Medlem
kantarellkungens avatar
Hej jag har en snabb liten fråga angående ett simpelt program jag har skapat.

Jag har gjort en multiplikationstabell som går från 0*0 till och med 5*10.

Jag får min tabell till:


Allt ser egentligen korrekt ut men jag vill bli av med de extra mellanrummen vid varje ny rad, är detta möjligt?

Alltså så det ser ut något liknande:

Kod:
for i in range(11):
    for j in range(1,6):
        print(j, "*", i, "=", i*j, end="\t\t")
        if j == 5:
            print("\n")
Citera
2017-11-07, 22:43
  #1516
Medlem
kantarellkungens avatar
Nevermind jag löste det..
Citera
2017-12-13, 13:12
  #1517
Medlem
Burnhams avatar
Hej är komplett novis inom python och skulle då behöva hjälp med en liten kod jag försöker bygga ihop.
Jag försöker importera ord och synonymer till dessa från ett exceldokument. Jag får error syntax på print(ord)

Kod
https://imgur.com/a/j6LGY

Varför får jag fel på detta?
Citera
2017-12-13, 17:11
  #1518
Medlem
Citat:
Ursprungligen postat av Burnham
Hej är komplett novis inom python och skulle då behöva hjälp med en liten kod jag försöker bygga ihop.
Jag försöker importera ord och synonymer till dessa från ett exceldokument. Jag får error syntax på print(ord)

Kod
https://imgur.com/a/j6LGY

Varför får jag fel på detta?


Du saknar en slutparantes.
Citera
2017-12-14, 01:04
  #1519
Medlem
Burnhams avatar
Citat:
Ursprungligen postat av Gottisborgen
Du saknar en slutparantes.
Hur menar du? Testade att lägga till en slutparantes vid "str" men fick fortfarande syntaxfel
Citera
2017-12-14, 06:38
  #1520
Medlem
Citat:
Ursprungligen postat av Burnham
Hur menar du? Testade att lägga till en slutparantes vid "str" men fick fortfarande syntaxfel

I slutet av den rader ser du att det är understruket med rött, parantes saknas.

Vad säger felet? Kan det vara så att den klagar på att du använder en sträng som delimiter, ",", istället för en char, ','? (Kommer inte ihåg ifall python gör denna skillnaden eller ej.)
Citera
2017-12-14, 13:24
  #1521
Medlem
Citat:
Ursprungligen postat av Burnham
Hej är komplett novis inom python och skulle då behöva hjälp med en liten kod jag försöker bygga ihop.
Jag försöker importera ord och synonymer till dessa från ett exceldokument. Jag får error syntax på print(ord)

Kod
https://imgur.com/a/j6LGY

Varför får jag fel på detta?

numpy.loadtxt läser in data från en ren textfil. Din fil är ett kalkylark. Spara om som .csv så borde det fungera. Eller ta dig en titt på pyexcel: https://github.com/pyexcel/pyexcel
Citera
2017-12-14, 15:10
  #1522
Medlem
Burnhams avatar
Citat:
Ursprungligen postat av Gottisborgen
I slutet av den rader ser du att det är understruket med rött, parantes saknas.

Vad säger felet? Kan det vara så att den klagar på att du använder en sträng som delimiter, ",", istället för en char, ','? (Kommer inte ihåg ifall python gör denna skillnaden eller ej.)

Citat:
Ursprungligen postat av Nich
numpy.loadtxt läser in data från en ren textfil. Din fil är ett kalkylark. Spara om som .csv så borde det fungera. Eller ta dig en titt på pyexcel: https://github.com/pyexcel/pyexcel
Testade att ändra filen till en csv. Får fortfarande samma fel rörande print.
https://imgur.com/a/y8ZJs
Citera
2017-12-14, 17:48
  #1523
Avstängd
Citat:
Ursprungligen postat av Burnham
Testade att ändra filen till en csv. Får fortfarande samma fel rörande print.
https://imgur.com/a/y8ZJs

Varför tar du ett fotografi av koden och laddar upp på en annan sajt, när du kan klistra in den 5 rader långa texten i inlägget?
Citera
2017-12-14, 17:50
  #1524
Medlem
Citat:
Ursprungligen postat av Burnham
Testade att ändra filen till en csv. Får fortfarande samma fel rörande print.
https://imgur.com/a/y8ZJs


Nu såg jag vad du gjort fel.

Du har glömt att lägga till en except efter din try.
En try måste alltid följas av en except där du fångar det fel som kan hända i koden inom try, alternativt en finally.

https://wiki.python.org/moin/HandlingExceptions
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback