如何根据列值创建pandas dummies

时间:2018-01-18 01:30:32

标签: python python-3.x pandas dataframe multiple-columns

我想根据列值创建虚拟对象......

这就是df的样子

我想创建这个

到目前为止,这是我的方法

import pandas as pd
df =pd.read_csv('test.csv')
v =df.Values

v_set=set()
for line in v:
line=line.split(',')
for x in line:
    if x!="":
        v_set.add(x)
    else:
        continue

   for val in v_set:
    df[val]=''

通过上面的代码,我可以像这样在我的df中创建列

如何更新行值以创建假人? 这就是我遇到问题的地方。

提前致谢。

1 个答案:

答案 0 :(得分:1)

您可以使用pandas.Series.str.get_dummies。这将使您直接使用分隔符拆分列。

df = pd.concat([df.ID, df.Values.str.get_dummies(sep=",")], axis=1)

    ID  1   2   3   4
0   1   1   1   0   0
1   2   0   0   1   1

df.Values.str.get_dummies(sep=",")将生成

    1   2   3   4
0   1   1   0   0
1   0   0   1   1

然后,我们将pd.concat粘贴到df上。