gpt4 book ai didi

python - 使用字典并引用另一列值来映射 pandas 数据帧的一列中的缺失值

转载 作者:行者123 更新时间:2023-12-01 01:04:43 25 4
gpt4 key购买 nike

我有一个数据框

> 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

如何将字典值映射到数据框事件列中的缺失值?

最佳答案

使用 applystr.split,与 apply 相比,使用列表理解并通过 ';'< 连接它:

df['activity'] = df['activity-code'].str.split(';').apply(lambda x: ';'.join([act_dict[int(i)] for i in x]))

现在:

print(df)

输出:

  activity-code                         activity
0 0 unknown
1 99 education
2 84 sports
3 72;99 social service;education
4 57 recreational
5 57;99;11 recreational;education;cultural
6 11 cultural

关于python - 使用字典并引用另一列值来映射 pandas 数据帧的一列中的缺失值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55466833/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com