我正在研究一个 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 将当前格式转换为二进制列?