【发布时间】:2019-12-07 12:52:42
【问题描述】:
我正在处理一个Airbnb列表数据集。其中一列称为舒适设施, 并包含列表必须提供的所有便利设施。 几个例子:
[Internet, Wifi, Paid parking off premises]
[Internet, Wifi, Kitchen]
[Wifi, Smoking allowed, Heating]
我想用几个二进制列替换这个列,一个用于各种便利性。 例如,其中之一将是:
wifi --> 0,0,0,1,1,0,1,1,0,1,0,1
我找到了一种使用 for 循环实现此目的的方法:
all_amenities = []
for row in amenities:
all_amenities += row
all_amenities = set(all_amenities)
for col in all_amenities:
df[col] = 0
for i,amenities_of_listing in enumerate(amenities):
for amenity in amenities_of_listing:
df.loc[i,amenity] = 1
但这需要很长时间才能运行 - 这里有人能想出一个更热情的方法吗?
【问题讨论】:
标签: python pandas data-processing