【发布时间】:2019-04-02 04:09:03
【问题描述】:
我有一个数据框
> print(df)
[Out:]
activity-code activity
-------------------------
0 unknown
99 NaN
84 sports
72;99 NaN
57 recreational
57;99;11 NaN
11 NaN
还有一个以活动代码为键的字典,
> print(act_dict)
[Out:]
{10: 'unknown',
11: 'cultural',
57: 'recreational',
72: 'social service',
84: 'sports',
99: 'education'}
数据框内的所有值都存储为字符串,即使活动代码的值也是字符串。而字典键是整数类型 我想参考存储在活动代码列中的值,使用字典以某种方式映射和替换活动中的缺失值。 所以想要的输出数据框应该是这样的,
> print(df)
[Out:]
activity-code activity
-------------------------
0 unknown
99 education
84 sports
72;99 social service;education
57 recreational
57;99;11 recreational;education;cultural
11 cultural
这是我迄今为止尝试过的,
df['new-activity'] = df['activity-code'].str.split(';').apply(lambda x: ';'.join([act_dict[int(i)] for i in x]))
但是对于活动代码不是单个代码值的单个值,我会收到 KeyError。错误说KeyError: 0
如何将字典值映射到数据框活动列中的缺失值?
【问题讨论】:
标签: python python-3.x pandas dictionary