【发布时间】:2018-02-24 20:37:29
【问题描述】:
我有一个数据框 (df),其中包含以下内容:
var1
a 1
a 1
b 2
b 3
c 3
d 5
还有一本字典:
dict_cat = {
'x' = ['a', 'b', 'c'],
'y' = 'd' }
我想创建一个名为 cat 的新列,其中取决于 var1 值,它采用 dict 键值:
var1 cat
a 1 x
a 1 x
b 2 x
b 3 x
c 3 x
d 5 y
我尝试使用 df['cat'] = df['var1'].map(dict_cat) 将变量的字典 map 输入:但由于值在列表中,Python 无法识别这些值,我只得到 NaN 值。有一种方法可以使用map 来做到这一点,或者我应该创建一个函数来遍历行检查var1 是否是in 字典列表?
谢谢!
【问题讨论】:
-
你需要解开你的字典,可以这么说,并反转映射。然后您应该能够使用 df.index.map(mapping.get)。