【发布时间】:2018-03-22 14:35:53
【问题描述】:
其实,我的问题是基于:
Is there a faster way to update dataframe column values based on conditions?
所以,数据应该是:
import pandas as pd
import io
t="""
AV4MdG6Ihowv-SKBN_nB DTP,FOOD
AV4Mc2vNhowv-SKBN_Rn Cash 1,FOOD
AV4MeisikOpWpLdepWy6 DTP,Bar
AV4MeRh6howv-SKBOBOn Cash 1,FOOD
AV4Mezwchowv-SKBOB_S DTOT,Bar
AV4MeB7yhowv-SKBOA5b DTP,Bar
"""
data_vec=pd.read_csv(io.StringIO(t),sep='\s{2,}',names=['id','source'])
data_vec
这是data_vec:
id source
0 AV4MdG6Ihowv-SKBN_nB DTP,FOOD
1 AV4Mc2vNhowv-SKBN_Rn Cash 1,FOOD
2 AV4MeisikOpWpLdepWy6 DTP,Bar
3 AV4MeRh6howv-SKBOBOn Cash 1,FOOD
4 AV4Mezwchowv-SKBOB_S DTOT,Bar
5 AV4MeB7yhowv-SKBOA5b DTP,Bar
如果我想要如下结果:(这意味着如何对多个标签或类别进行矢量化?)
_id source_Cash 1 source_DTOT source_DTP Food Bar
0 AV4MdG6Ihowv-SKBN_nB 0 0 1 1 0
1 AV4Mc2vNhowv-SKBN_Rn 1 0 0 1 0
2 AV4MeisikOpWpLdepWy6 0 0 1 0 1
3 AV4MeRh6howv-SKBOBOn 1 0 0 1 0
4 AV4Mezwchowv-SKBOB_S 0 1 0 0 1
5 AV4MeB7yhowv-SKBOA5b 0 0 1 0 1
如果重复,警告我删除!
【问题讨论】:
-
可能是重复的,但我不知道。无论如何,
get_dummies采用一个可以处理多个值的分隔符:data_vec.source.str.get_dummies(sep=',') -
@JohnE 感谢您的评论,我学到了一些新东西!不知道分隔符。
-
我也是!@JohnE @COLDSPEED
-
@OP,如果您也可以关闭this question 并接受答案,那就太好了。
-
这不是我的问题,如果是,我会关闭它!
标签: python pandas scikit-learn one-hot-encoding