我想根据列值创建虚拟对象...
这就是 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 中创建列
如何更新行值以创建虚拟值? 这就是我遇到问题的地方。
提前致谢。
最佳答案
您可以使用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 粘合在一起。
关于python - 如何根据列值创建 pandas 虚拟对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48312529/