将多个属性的熊猫系列字符串转换为单个属性?

数据挖掘 Python 熊猫 麻木的
2022-02-09 16:42:59

我正在研究一个 Airbnb 数据集,以预测每晚的价格——每个示例都是一个 Airbnb 列表(即某人的房子、房间、公寓等的列表)。每个功能都是房源的一个特征(即# 卧室、# 浴室、平均评分等)。

其中一项功能是“便利设施”,即为房源提供的便利设施(例如 wifi、电视、厨房等)。每个示例都包含一串自己的便利设施,如下所示:

{TV,"Cable TV",Wifi,"Air conditioning",Kitchen,Elevator,Heating,Washer,Dryer,"Smoke detector","Fire extinguisher",Essentials,Shampoo,Hangers,"Hair dryer",Iron,"Laptop friendly workspace","Self check-in",Keypad,"Private living room","Hot water","Bed linens",Microwave,"Coffee maker",Refrigerator,Dishwasher,"Dishes and silverware","Cooking basics",Oven,Stove,"Long term stays allowed"}

Dtype 是一个字符串(pandas 中的“O”)。

我计划使用 pd.Series.str.replace() 为每个字符删除末尾的 {} 和 " 引号 - 除非它们对保留有用。

但除此之外,我不确定处理该功能本身的最佳方法。

我的问题是:

我是否应该为每个便利设施创建单独的二进制列(即,如果电视是便利设施,则在“电视”列中为 1,如果不提供 wifi,则在“wifi”列中为 0)?我很犹豫,因为那会增加几十列。如果我应该这样做,如何使用 Pandas 将当前格式转换为二进制列?

1个回答

这可能会使Pandas 将一列 list 转换为 dummy

您可以尝试MultiLabelBinarizer使用sklearn.