我想根据列值创建虚拟对象......
这就是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中创建列
如何更新行值以创建假人? 这就是我遇到问题的地方。
提前致谢。
答案 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上。