我有一个连续的数据流进来,所以我想事先定义DataFrame,这样我就没有告诉pandas来格式化数据或设置索引
所以我想创建一个像
这样的DataFramedf = pd.DataFrame(columns=["timestamp","stockname","price","volume"])
但是我想告诉Pandas数据索引应该是时间戳,格式是
"%Y-%m-%d %H:%M:%S:%f"
并设置了一个,然后我将读取文件并将数据传递给DataFrame初始化
我在每次循环填充的变量中获取数据,如
for line in filehandle:
timestamp, stockname, price, volume = fetch(line)
here I want to update the "df"
这个更新会在我继续使用
的副本时继续df
让我们说一下
tempdf
在任何给定时间点进行重新采样或任何其他任务,因为原始数据帧
df
正在不断更新
答案 0 :(得分:1)
import numpy as np
import pandas as pd
import datetime as dt
import time
# create df with timestamp as index
df = pd.DataFrame(columns=["timestamp","stockname","price","volume"], dtype = float)
pd.to_datetime(df['timestamp'], format = "%Y-%m-%d %H:%M:%S:%f")
df.set_index('timestamp', inplace = True)
for i in range(10): # for the purposes of functioning demo code
i += 1 # counter
time.sleep(0.01) # give jupyter notebook a moment
timestamp = dt.datetime.now() # to be used as index
df.loc[timestamp] = ['AAPL', np.random.randint(1000), np.random.randint(10)] # replace with your database read
tempdf = df.copy()
如果您正在连续阅读文件或数据库,可以将for:loop替换为您在问题中描述的内容。 @MattR的问题也应该得到解决;如果您需要不断记录或更新数据,我不确定大熊猫是否是最佳解决方案。