首页 > 解决方案 > 计算字符串特征

问题描述

数据位于 csv 的 pandas 数据框中。我是这样带进来的:

listing = pd.read_csv("listings.csv")

我有一个来自 AirBnB 数据集的便利设施列。我对 AirBnB 何时将“允许携带宠物”作为其设施的一部分感兴趣。

in:   listing['amenities'].head(2)

out:  0     {TV,"Cable TV",Internet,Wifi,"Paid parking off...
      1     {TV,"Cable TV",Internet,Wifi,Kitchen,"Free par...

通常在便利设施栏中,我们会看到{TV,"Cable TV",Internet,Wifi,"Pets Allowed"...}

如何计算“允许携带宠物”的行数?

我试过了:

pets_count = listing['amenities'].str.contains('pet*').sum()
pets_count

返回 59,但我知道这不是值,因为还有更多。

标签: pythonstringcurly-braces

解决方案


一个简单的解决方案是将字符串拆分,并删除"

像这样:

s =  """{TV,"Cable TV",Internet,Wifi,Kitchen}"""
amenities = [amenitie.replace('"','').strip() for amenitie in s.replace('{', '').replace('}', '').split(',')]
if 'Pets allowed' in amenities:
  print('pets allowed !')

推荐阅读