这种映射的“熊猫”合成体是什么?
colors = ["red", "black"]
[colors[ind] for ind in [0, 1, 0, 0, 1, 0, 1]]输出为
['red', 'black', 'red', 'red', 'black', 'red', 'black']发布于 2020-10-14 10:00:22
将Series.map与enumerate创建的字典一起使用
df = pd.DataFrame({'a':[0, 1, 0, 0, 1, 0, 1]})
colors = ["red", "black"]
df['b'] = df['a'].map(dict(enumerate(colors)))
print (df)
a b
0 0 red
1 1 black
2 0 red
3 0 red
4 1 black
5 0 red
6 1 black如果所有索引匹配(它意味着列的最大值等于或与列表color长度相同)都有可能,可以使用numpy广播:
colors = ["red", "black"]
df['b'] = np.array(colors)[:, None][df['a'].to_numpy()]
print (df)
a b
0 0 red
1 1 black
2 0 red
3 0 red
4 1 black
5 0 red
6 1 blackhttps://stackoverflow.com/questions/64350838
复制相似问题