【发布时间】:2020-12-03 22:09:26
【问题描述】:
我正在尝试为我正在开发的游戏构建一个简单的随机项目生成器。 到目前为止,我一直在试图弄清楚如何存储和访问所有数据。我与 pandas 一起使用 .csv 文件来存储数据集。
我想为生成的项目添加加权概率,因此我尝试读取 csv 文件并将每个列表编译成一个新集合。
我让程序选择一个随机集合,但在尝试从该集合中提取随机行时卡住了。
当我使用 .sample() 拉出项目行时出现错误,这让我觉得我不明白 pandas 的工作原理。我认为我需要创建新列表,以便以后可以索引并在选择项目后访问项目的各种统计信息。
一旦我拉出我打算添加可以改变伤害和护甲等显示的效果的项目。所以我在考虑让新项目成为它自己的列表,然后使用damage = item[2] + 3 或我需要的任何东西
错误是:AttributeError: 'list' object has no attribute 'sample'
谁能帮助解决这个问题?也许有更好的方法来设置数据?
到目前为止,这是我的代码:
import pandas as pd
import random
df = [pd.read_csv('weapons.csv'), pd.read_csv('armor.csv'), pd.read_csv('aether_infused.csv')]
def get_item():
item_class = [random.choices(df, weights=(45,40,15), k=1)] #this part seemed to work. When I printed item_class it printed one of the entire lists at the correct odds
item = item_class.sample()
print (item) #to see if the program is working
get_item()
【问题讨论】:
-
我想知道 read_csv 函数是否不是这里需要的......
标签: python-3.x pandas dataframe generator