首页 > 解决方案 > Python时间序列数据框在while循环中的每个循环设置一个元素

问题描述

我是 python 的新手,当然我没有最好的代码,但我几乎得到了我想要的,我在最后一英里。我试图在一个暂停为一秒的while循环中填充频率为一秒的时间序列的数据帧,在这个循环内我试图当时设置数据帧元素,而是每次都写入一个元素我写入所有数据框元素。如果我用 np.random.randint(0,100,size=(len(rng)) 进行测试,我不明白它可以正常工作,但是当我插入 np 我的变量时,它会用最后一个填充所有数据框数据

import datetime
import pandas as pd
import numpy as np

today=datetime.today()
rng=pd.period_range(today,periods=1000,freq='S')
rng=rng.astype('datetime64[ns]')
df = pd.DataFrame(rng, columns=['date'])

df['datetime'] = pd.to_datetime(df['date'])
df= df.set_index('datetime')
df.drop(['date'], axis=1, inplace=True)

x=0
    while True:    

        try:
        df['data'] = np.random.randint(0,100,size=(len(rng))
        # if instead of np i put my variable data it will fill all the data frame with the last data

        print(x)
        print(df.head(x))
        time.sleep(1)

    except KeyboardInterrupt:
        break

标签: pythondataframe

解决方案


我找到了这个解决方案:在while循环之前,我在循环中添加了 df['data']=np.nan e 我用这个 df.iloc[x]='my series variable' 和 x+= 用随机数更改了行1. 简而言之,我创建了一个数据框元素迭代。不知道有没有更好的办法


推荐阅读