如何解决如何使用生成器函数一次从csv文件中检索一行
我需要从CSV文件中提取一行,以便在强化学习课程环境中用作观察元组。我使用过生成器功能,首先它不检索任何数据,其次它将迭代地提供所有数据,这与我的问题的要求不符。另外,我需要当前选择的观察值(CSV行)在类环境中的多种方法中使用,例如在奖励功能中。
关于如何执行此操作的任何想法或建议均受到高度赞赏。谢谢
class Environment1:
def __init__(self,data,max_ticks=300):
self.data = data
self.application_latency=1342
self.reward = 0
#self.done = False
self.MAX_TICKS = max_ticks
self.episode_over = False
def step(self,act):
self.take_action(action)
reward = self.get_reward()
ob = self.get_state()
return ob,reward,self.episode_over
#return ob,self.done # obs,done
def get_state(self):
"""Get the observation. it is a tuple """
lst = [tuple(x) for x in data.values]
def gen(last):
for i in last:
print(yield i)
#observation_space= yield i
#ob = (observation_space.Edge_Latency,observation_space.Cloud_latency )
#print(ob)
#return ob
解决方法
根据我从问题中收集到的信息,您希望根据csv数据创建观察元组的生成器。具体来说,您希望将具有edge latency
和cloud latency
列的每个元组传递给另一个函数。我已经编写了一些示例代码,这些代码将为数据的每一行列出一个元组列表。
import pandas as pd
import numpy as np
def createGenerator(self):
obs_data = [tuple(x) for x in self.data[['Edge_Latency','Cloud_latency']].to_numpy()]
for obs in obs_data:
yield obs
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。