python - 如何根据列值创建 pandas 虚拟对象

标签 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 中创建列

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

提前致谢。

最佳答案

您可以使用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/

相关文章:

Python 3 运算符 >> 打印到文件

python-3.x - api返回奇数响应

python - 数据帧的迭代创建和命名

python - 数据透视表中的条形图,包含总计和每组聚合的百分比

python - 在 Python 中使用 ijson 更新 JSON 值

Python正则表达式: replace a letter if it is not a part of the word in a list

Python peewee 外键

python-3.x - Pandas :删除缺少数据的行

python - 性能监控Openerp

python - Django 中的 OpenID 或 Auth?