gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 07:51:19 24 4
gpt4 key购买 nike

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

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com