Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用保存数据帧名称的变量引用数据帧?_Python_Pandas - Fatal编程技术网

Python 如何使用保存数据帧名称的变量引用数据帧?

Python 如何使用保存数据帧名称的变量引用数据帧?,python,pandas,Python,Pandas,我有以下数据帧:包,盔甲,剑,弓。每个都有大约100行,每个都有一个id列作为索引,另一个列称为name。这是一个数据帧的简化版本: pack=pd.DataFrame(columns=['id','name','capacity']).set_index('id') packs.loc[1]=['Small Backpack',15] ... 我的清单包含单词pack,然后是我拥有的pack的id号;装甲这个词和我拥有的装甲的id号,等等 inventory = [ ('pa

我有以下数据帧:包,盔甲,剑,弓。每个都有大约100行,每个都有一个id列作为索引,另一个列称为name。这是一个数据帧的简化版本:

pack=pd.DataFrame(columns=['id','name','capacity']).set_index('id')
packs.loc[1]=['Small Backpack',15]
...
我的清单包含单词pack,然后是我拥有的pack的id号;装甲这个词和我拥有的装甲的id号,等等

inventory = [
        ('pack','1'),
        ('armor','3'),
        ('sword','2'),
        ('bow','1')
        ]
我正在创建一个函数,该函数将产生如下结果:

pack: Small Backpack
armor: Steel Armor
sword: Wooden Sword
bow: Hardened Bow
在下面的XXXXX点,我需要调用项目的名称,但不知道如何调用

def command_inventory():
    for a,b in inventory:
        print(a+':',XXXXX)

您可以通过创建一个字典来实现这一点,该字典将库存关键字映射到数据帧,然后我们可以选择列
name
,并根据索引选择值

inventory = [
    ('pack','1'),
    ('armor','3'),
    ('sword','2'),
    ('bow','1'),
]

df_map = {
    'pack': pack,
    'armor': armor,
    'sword': sword,
    'bow': bow,
}

for a, b in inventory:
    print(f"{a}: {df_map[a]['name'][int(b)]}")

您可以通过创建一个字典来实现这一点,该字典将库存关键字映射到数据帧,然后我们可以选择列
name
,并根据索引选择值

inventory = [
    ('pack','1'),
    ('armor','3'),
    ('sword','2'),
    ('bow','1'),
]

df_map = {
    'pack': pack,
    'armor': armor,
    'sword': sword,
    'bow': bow,
}

for a, b in inventory:
    print(f"{a}: {df_map[a]['name'][int(b)]}")

谢谢,但你误解了。您所写的内容将一次又一次地查询包df。我需要询问背包,然后是盔甲,然后是剑,然后是弓箭。在这种情况下,我们可以有一个dict,它将inventory关键字映射到dataframe。我已经编辑了我的答案@谢谢,但你误解了。您所写的内容将一次又一次地查询包df。我需要询问背包,然后是盔甲,然后是剑,然后是弓箭。在这种情况下,我们可以有一个dict,它将inventory关键字映射到dataframe。我已经编辑了我的答案@安德鲁格拉汉姆