имеют следующий код, в результате которого каждую минуту создается кадр потоковых данных с более чем 5000 строками. Поскольку этот фрейм данных находится в пределах l oop, я не могу управлять данными внутри фрейма данных. Поэтому мне нужно знать, как отделить фрейм данных, чтобы он выходил за пределы l oop, скажем, каждые 5 минут, а затем снова перезапускать, чтобы собрать информацию в фрейме данных. '' '
df=pd.DataFrame(data=None)
def on_ticks(ws, ticks):
global df
for sc in ticks:
token=sc['instrument_token']
name=trd_portfolio[token]['name']
ltp=sc['last_price']
df1=pd.DataFrame([name,ltp]).T
df1.columns=['name','ltp']
df=df.append(df1,ignore_index=True)
print(df)
' '' Результатом будет
name ltp
0 GLAXO 1352.2
1 GSPL 195.75
2 ABAN 18
3 ADANIPOWER 36.2
4 CGPOWER 6
... ... ...
1470 COLPAL 1317
1471 ITC 196.2
1472 JUBLFOOD 1698.5
1473 HCLTECH 550.6
1474 INDIGO 964.8
[1475 rows x 2 columns]
дальнейшие манипуляции, необходимые для фрейма данных, выглядят следующим образом: '' '
df['change']=df.groupby('name')['ltp'].pct_change()*100
g = df.groupby('name')['change']
counts = g.agg(
pos_count=lambda s: s.gt(0).sum(),
neg_count=lambda s: s.lt(0).sum(),
net_count=lambda s: s.gt(0).sum()- s.lt(0).sum()).astype(int)
print(counts)
' ''
Однако я не могу заморозить l oop на определенное время для выполнения других процессов. Я пробовал метод сна, но он спит определенное время, а затем возвращается к l oop.
Требуется руководство о том, как мы можем заморозить l oop на определенное время, чтобы другие коды могут быть выполнены и возвращены к l oop, чтобы продолжить сбор данных.