熊猫:得到傻瓜
Posted
技术标签:
【中文标题】熊猫:得到傻瓜【英文标题】:Pandas: Get Dummies 【发布时间】:2016-07-17 01:24:58 【问题描述】:我有以下数据框:
amount catcode cid cycle date di feccandid type
0 1000 E1600 N00029285 2014 2014-05-15 D H8TX22107 24K
1 5000 G4600 N00026722 2014 2013-10-22 D H4TX28046 24K
2 4 C2100 N00030676 2014 2014-03-26 D H0MO07113 24Z
我想为type
列中的值创建虚拟变量。大约有 15 个。我试过这个:
pd.get_dummies(df['type'])
它返回这个:
24A 24C 24E 24F 24K 24N 24P 24R 24Z
date
2014-05-15 0 0 0 0 1 0 0 0 0
2013-10-22 0 0 0 0 1 0 0 0 0
2014-03-26 0 0 0 0 0 0 0 0 1
我想要为Type
中的每个唯一值创建一个虚拟变量列
【问题讨论】:
你不是说pd.get_dummies(df['type'])
吗?
是的!谢谢。现在有没有办法将它添加到我的 df 中,或者我应该只是加入?
你希望最终的 df 看起来像什么?
新的 fd 应该在新的 df 中包含虚拟列
所以你可以join
然后:df.join(pd.get_dummies(df['type']))
【参考方案1】:
你可以试试:
df = pd.get_dummies(df, columns=['type'])
【讨论】:
【参考方案2】:考虑我有以下数据框:
Survived Pclass Sex Age Fare
0 0 3 male 22.0 7.2500
1 1 1 female 38.0 71.2833
2 1 3 female 26.0 7.9250
3 1 1 female 35.0 53.1000
4 0 3 male 35.0 8.0500
get_dummies有两种实现方式:
方法一:
one_hot = pd.get_dummies(dataset, columns = ['Sex'])
这将返回:
Survived Pclass Age Fare Sex_female Sex_male
0 0 3 22 7.2500 0 1
1 1 1 38 71.2833 1 0
2 1 3 26 7.9250 1 0
3 1 1 35 53.1000 1 0
4 0 3 35 8.0500 0 1
方法二:
one_hot = pd.get_dummies(dataset['Sex'])
这将返回:
female male
0 0 1
1 1 0
2 1 0
3 1 0
4 0 1
【讨论】:
【参考方案3】:请尝试:
type_dummies = pd.get_dummies(df['type'],drop_first=True)
df = pd.concat([df,type_dummies],axis=1)
【讨论】:
以上是关于熊猫:得到傻瓜的主要内容,如果未能解决你的问题,请参考以下文章