[问题] pandas 循环运算

楼主: allenlenten (...)   2017-06-22 16:28:52
大家好 我想要问怎么改变FOR 循环的起始和终值
比如说 我现有一个DF读进来,然后
acc = df[df['成交时间']>=90500]
for mo in acc.index:
if df.iloc[mo,8] > 200:
buy = df.iloc[more+1,4]
out = 0
for mo in accumulate.index:
while out < -200:
out = out + df.iloc[mo+1,'vol']
我想要判断df.iloc[mo,8] > 200 后买进 然后之前的加总的值小于200卖出
我以为mo 可以连贯的.好像不是这样 要如何只做一次这个index就好
我要怎么控制这个循环的起始值呢? 或是有更好的解法 谢谢
作者: Scinfaxi (Scinfaxi)   2017-06-22 20:53:00
acc的index是0开始的依序整数就可以吧?如果不是是否改成for mo in range(len(acc.index))?
作者: Django (Cython)   2017-06-22 21:30:00
是说acc = df[df['成交时间']>=90500] <--有这种语法@@?
楼主: allenlenten (...)   2017-06-22 21:55:00
这是我取得条件的index。他不是从0开始 有时候index也不是斗连续 可能有跳号
作者: ntumath (math mad)   2017-06-23 04:44:00
iloc的用法就是把需要格子的座标当作参数,所以你要先取得你要的index名字的座标。用看看get_loc吧
作者: HenryLiKing (HenryLiKing)   2017-06-23 08:52:00
回gjango 有喔 中间那段会回传一堆T和F 然后是T的就会被抓到喔
作者: Django (Cython)   2017-06-23 09:58:00
嗯~~~df的型态是什么啊 我本来以为是dict
作者: max533 (向阳花)   2017-06-24 20:22:00
回楼上,df应该是pandas的物件Dataframe

Links booklink

Contact Us: admin [ a t ] ucptt.com