我之前已经看过这个,并且根本不记得该函数。
假设我有一列“速度”,并且每一行都有以下值之一:
'Slow', 'Normal', 'Fast'
我如何用除“速度”列(现在为3列)之外的所有行创建一个新的数据帧:“慢”,“普通”和“快速”,其中所有行都标有1,而在老“速度”列中”栏。因此,如果我有:
print df['Speed'].ix[0]
> 'Normal'
我不希望这样:
print df['Normal'].ix[0]
>1
print df['Slow'].ix[0]
>0
您可以使用pd.get_dummies
(docs)轻松做到这一点:
In [37]: df = pd.DataFrame(['Slow', 'Normal', 'Fast', 'Slow'], columns=['Speed'])
In [38]: df
Out[38]:
Speed
0 Slow
1 Normal
2 Fast
3 Slow
In [39]: pd.get_dummies(df['Speed'])
Out[39]:
Fast Normal Slow
0 0 0 1
1 0 1 0
2 1 0 0
3 0 0 1
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句