我试图转换有关婚姻状况的调查数据,如下所示:
df['d11104'].value_counts()
[1] Married 1 250507
[2] Single 2 99131
[4] Divorced 4 32817
[3] Widowed 3 24839
[5] Separated 5 8098
[-1] keine Angabe 2571
Name: d11104, dtype: int64
到目前为止,我做了df['marstat'] = df['d11104'].cat.codes.astype('category')
,屈服了
现在,我想在列marstat
中添加标签,这样就可以维护数值,也就是说,我喜欢通过条件df['marstat'] == 1
来识别人,同时将标签['Married','Single','Divorced','Widowed']
附加到这个变量。如何做到这一点?在
编辑:多亏了jpp的回答,我只需创建了一个新变量并手动定义了标签:
df['marstat_lb'] = df['marstat'].map({1: 'Married', 2: 'Single', 3: 'Widowed', 4: 'Divorced', 5: 'Separated'})
可以将结果转换为数据帧,并在输出中同时包含类别代码和名称。在
类别映射字典可以通过对类别的枚举来提取。下面是最小的例子。在
例如,您可以通过
df['A'] == 'M'
或df.index == 1
来访问“M”。在更简单的解决方案是使用apply
^{pr2}$value_counts
,然后为代码添加一个额外的列:相关问题 更多 >
编程相关推荐