将CSV转换为字典,然后通过map()函数查找



我有一个名为DummyData 的数据帧

Cover   Age Are   AddFlag
0   COMP    33  4     1
1   COMP    67  47    1
2   COMP    17  155   1
3   COMP    24  35    1
4   COMP    66  57    1

我的第二个数据帧叫做BaseRate

Cover   Anchor
0   COMP    1000.0
1   TPFT    850.0
2   TPO     840.0

我运行以下代码:

BaseRate = BaseRate.set_index(['Cover'])
CoverDict = BaseRate.to_dict()
print(CoverDict)

并返回

{'Anchor': {'COMP': 1000.0, 'TPFT': 850.0, 'TPO': 840.0}}

然后我运行

DummyData["Anchor"] = DummyData["Cover"].map(Anchor)
DummyData.head()

但我有

NameError:名称"Anchor"未定义。

我想要的是DummyData附加Anchor变量(就像Excel中的vlookup(

Cover   Age Area    AddFlag Base    Anchor
0   COMP    33  4   1   1000.0  1000.0
1   COMP    67  47  1   1000.0  1000.0
2   COMP    17  155 1   1000.0  1000.0
3   COMP    24  35  1   1000.0  1000.0
4   COMP    66  57  1   1000.0  1000.0

如果我运行

Anchor = {'COMP': 1000.0, 'TPFT': 850.0, 'TPO': 840.0} 

然后我的代码就工作了。我想失去花括号

感谢任何帮助,因为我是Python的新手。感谢

"Anchor"是指向要使用的地图的CoverDict中的一个键。

你可以这样访问它:

DummyData["Anchor"] = DummyData["Cover"].map(CoverDict["Anchor"])

在您的代码中,当您执行.map(Anchor)时,您试图访问一个名为Anchor的变量,因此在使用该变量之前,您必须定义该变量

你也可以这样定义它,然后保留你的电话:

Anchor = CoverDict["Anchor"]
DummyData["Anchor"] = DummyData["Cover"].map(Anchor)

最新更新