[英]how can I convert a big pandas dataframe to a streaming data frame?
以前,我通过使用pd.date_range()
创建具有所需间隔的时间,然后按范围内的时间对原始数据帧进行切片,从而解决了类似的问题。
例如。
times = pd.date_range(start=13:00, end=15:00, freq=T)
for t in times:
df_instance = df[df["Time"]<t]
Do something
发布这个小解决方案来解决您的问题。
import pandas as pd
import schedule
df = pd.read_csv('file.csv', iterator=True, chunksize=2)
def get_next_row():
row = next(df)
print(row)
# do_some_thing_with_row(row)
schedule.every(5).seconds.do(get_next_row)
while True:
try:
schedule.run_pending()
except StopIteration as e:
print("EOF")
break
上面的代码基本上调用get_next_row函数并在 5 秒的间隔内每读取 2 行并打印行。 您可以添加功能而不是打印。 一旦到达 EOF,它将抛出StopIteraton异常。
现在,您可以根据自己的要求调整间隔和块大小。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.