我的数据是 .csv 格式,每行数据代表每个代理,而每列代表某个属性。
我的问题是如何从 Mesa 中的 csv 文件分配代理及其属性?
任何人都可以帮助我如何在 Mesa 中导入它们吗?
谢谢。
我的数据是 .csv 格式,每行数据代表每个代理,而每列代表某个属性。
我的问题是如何从 Mesa 中的 csv 文件分配代理及其属性?
任何人都可以帮助我如何在 Mesa 中导入它们吗?
谢谢。
要导入 .csv 并将它们转换为您想知道如何在文件中读取的属性,然后在创建它时将其传递给代理类。
例如:
你有'people.csv':
agent, height, weight
bill, 72 in, 190lbs
anne, 70 in, 170lbs
您以列表列表的形式读入:
import csv
people = []
with open('people.csv') as csv_file:
csv_reader = csv.reader(csv_file, delimiter=',')
line_count = 0
for row in csv_reader:
if line_count == 0:
pass #skips the column headers
line_count += 1
else:
people.append(row)
# This will look like [[ 'bill', '72 in', '190lbs'], ['anne', '70 in',\
#'170lbs']]
您将连续传递到您的代理实例化中,这通常会在模型模块中创建代理计划时发生:
for i in range(number_of_agents):
a = myAgent(i, self, row[i])
self.schedule.add(a)
您将行变量分配给代理属性:
class myAgent(Agent):
def __init__(self, unique_id, model, row):
super().__init__(unique_id, model)
self.name = row[0] # e.g bill
self.height = row[1] # e.g. 72 in
self.weight = row[2] # e.g. 190 lbs