我有一个格式为的数据框:
id amenities ...
1 "TV,Internet,Shower,..." ...
2 "TV,Hot tub,Internet,..." ...
3 "Internet,Heating,Shower..." ...
...
我想分割有关逗号的字符串并为每个类别创建虚拟列,结果如下:
id TV Internet Shower Hot tub Heating ...
1 1 1 1 0 0 ...
2 1 1 0 1 0 ...
3 0 1 1 0 1 ...
...
我该如何去做呢?
谢谢
最佳答案
您可以使用get_dummies
与 join
或concat
:
df = df[['id']].join(df['amentieis'].str.get_dummies(','))
print (df)
id Heating Hot tub Internet Shower TV
0 1 0 0 1 1 1
1 2 0 1 1 0 1
2 3 1 0 1 1 0
或者:
df = pd.concat([df['id'], df['amentieis'].str.get_dummies(',')], axis=1)
print (df)
id Heating Hot tub Internet Shower TV
0 1 0 0 1 1 1
1 2 0 1 1 0 1
2 3 1 0 1 1 0
关于python - 使用编码为字符串的类别列表的 Pandas 假人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44703748/