Liq*_*ity 5 python dictionary series pandas
我有一个这样的数据框:
df1 = pd.DataFrame({'col1' : ['cat', 'cat', 'dog', 'green', 'blue']})
Run Code Online (Sandbox Code Playgroud)
我想要一个提供类别的新列,如下所示:
dfoutput = pd.DataFrame({'col1' : ['cat', 'cat', 'dog', 'green', 'blue'],
'col2' : ['animal', 'animal', 'animal', 'color', 'color']})
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用.loc以下方法效率低下:
df1.loc[df1['col1'] == 'cat','col2'] = 'animal'
df1.loc[df1['col1'] == 'dog','col2'] = 'animal'
Run Code Online (Sandbox Code Playgroud)
我如何结合cat并dog成为两者animal?这不起作用:
df1.loc[df1['col1'] == 'cat' | df1['col1'] == 'dog','col2'] = 'animal'
Run Code Online (Sandbox Code Playgroud)
建立你的dict然后做map
d={'dog':'ani','cat':'ani','green':'color','blue':'color'}
df1['col2']=df1.col1.map(d)
df1
col1 col2
0 cat ani
1 cat ani
2 dog ani
3 green color
4 blue color
Run Code Online (Sandbox Code Playgroud)