我有一个组ID列表:
letters = ['A', 'A/D', 'B', 'B/D', 'C', 'C/D', 'D']
以及组的数据帧:
groups = pd.DataFrame({'group': ['B', 'A/D', 'D', 'D', 'A']})
我想在dataframe中创建一个列,给出组id在列表中的位置,如下所示:
group group_idx
0 B 2
1 A/D 1
2 D 6
3 D 6
4 A 0
我目前的解决方案是:
group_to_num = {hsg: i for i, hsg in enumerate(letters)}
groups['group_idx'] = groups.applymap(lambda x: group_to_num.get(x)).max(axis=1).fillna(-1).astype(np.int32)
但这似乎不雅。有没有更简单的方法?你知道吗
使用map:
输出
您可以尝试在数据帧构造函数之后合并:
相关问题 更多 >
编程相关推荐