python - 将同一行中的值按相同的值拆分为多列中的 df?

标签 python pandas

我的数据框有一列包含一些值,这些值可以出现在所有行中,但这不是必需的。 我想将此值拆分到不同的行中,如果该值出现在该列中,则输入 1

我使用的是 python 3,df 是:

data = {'Amenities':[{'TV', 'Wifi'}, {'TV',"Cable TV",'Internet','Wifi'},
                     {'Internet','Wifi'}]}  
df2 = pd.DataFrame(data) 
df2

    Amenities
0   {TV, Wifi}
1   {TV, Cable TV, Wifi, Internet}
2   {Wifi, Internet}

我想以这种方式查看表格:

data = {'Amenities':[{'TV', 'Wifi'}, {'TV',"Cable TV",'Internet','Wifi'},
                     {'Internet','Wifi'}],
        'TV':[1,1,0],
        'Cable TV':[0,1,0],
        'Wifi':[1,1,1],
        'Internet':[0,1,1],
       }  
df2 = pd.DataFrame(data) 
df2

    Amenities   TV  Cable TV    Wifi    Internet
0   {TV, Wifi}  1   0   1   0
1   {TV, Cable TV, Wifi, Internet}  1   1   1   1
2   {Wifi, Internet}    0   0   1   1

最佳答案

在您的情况下使用 get_dummies 然后 concat

s=pd.get_dummies(df2.Amenities.apply(list).apply(pd.Series),prefix = '',prefix_sep = '').sum(level=0,axis=1)
s
Out[66]: 
   Cable TV  Internet  TV  Wifi
0         0         0   1     1
1         1         1   1     1
2         0         1   0     1
df=pd.concat([df2,s],axis=1)
df
Out[68]: 
                        Amenities  Cable TV  Internet  TV  Wifi
0                      {TV, Wifi}         0         0   1     1
1  {Cable TV, Internet, Wifi, TV}         1         1   1     1
2                {Internet, Wifi}         0         1   0     1

关于python - 将同一行中的值按相同的值拆分为多列中的 df?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56202506/

相关文章:

python - Pygame 大表面

python - “元组”对象在更新图像对象时没有属性 '_committed' 错误?

python - 为什么我的排列检验分析曲线不平滑?

Python:汇总和聚合 DataFrame 中的组和子组

python - 多索引填充数据框

python - 跨数据库 SQLAlchemy 应用程序的通用 TEXT/CLOB 数据类型

python - 如何使用 python 修改文件访问控制列表?

python - 如何用另一个的 MultiIndex 对一个 MultiIndex DataFrame 进行切片

python - 关联表的列到行

python - Pandas/Python 过滤 DF 的列值