Python 3.x 如何使用生成器函数从csv文件中一次检索一行

Python 3.x 如何使用生成器函数从csv文件中一次检索一行,python-3.x,pandas,machine-learning,reinforcement-learning,Python 3.x,Pandas,Machine Learning,Reinforcement Learning,我需要从CSV文件中取出一行,作为观察元组用于强化学习类环境。我首先使用了生成器函数,它不检索任何数据,其次它将迭代地提供所有数据,这与我的问题的要求不匹配。另外,我需要在类环境中的多个方法中使用当前选择的观察(CSV行),例如在奖励函数中 对于如何做到这一点,我们高度赞赏任何想法或建议。谢谢 class Environment1: def __init__(self, data, max_ticks=300): self.data = data self.

我需要从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, reward, self.done # obs, reward, 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

根据我从您的问题中收集的信息,您希望从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