Python 3.x 获取另一列数据框中值的布尔列

Python 3.x 获取另一列数据框中值的布尔列,python-3.x,pandas,dataframe,apply,Python 3.x,Pandas,Dataframe,Apply,我有一个数据框,如果便利设施列中有“电梯”,我想创建一个名为电梯的布尔列 此代码生成TypeError:类型为“float”的参数不可编辑: df['elevator'] = df['amenities'].apply(lambda x: True if 'Elevator' in x else False) 此代码生成所有错误 df['elevator'] = 'Elevator' in df['amenities'] 如果地址里有电梯,你知道我怎样才能得到正确/错误的答案吗 多谢各位

我有一个数据框,如果便利设施列中有“电梯”,我想创建一个名为电梯的布尔列

此代码生成TypeError:类型为“float”的参数不可编辑:

df['elevator'] = df['amenities'].apply(lambda x: True if 'Elevator' in x else False)
此代码生成所有错误

df['elevator'] = 'Elevator' in df['amenities']
如果地址里有电梯,你知道我怎样才能得到正确/错误的答案吗

多谢各位

可以使用以下代码创建数据框:

pd.DataFrame({'address': {0: '201 East 12th St',
  1: 'East 17 st',
  2: '507 W 134th St Apt 54',
  3: 'Blue Slip'},
 'amenities': {0: 'Elevator',
  1: 'Elevator',
  2: 'Laundry in Unit ; Hardwood Floors',
  3: 'Doorman ; Elevator ; Laundry in Unit ; Hardwood Floors'}})
我想您需要使用
na=False
NaN
s或数值转换为
False

还感谢@jpp提出了改进性能的想法-使用
regex=False

df['elevator'] = df['amenities'].str.contains('Elevator', na=False, regex=False)
print (df)
                 address                                          amenities  \
0       201 East 12th St                                           Elevator   
1             East 17 st                                           Elevator   
2  507 W 134th St Apt 54                  Laundry in Unit ; Hardwood Floors   
3              Blue Slip  Doorman ; Elevator ; Laundry in Unit ; Hardwoo...   

   elevator  
0      True  
1      True  
2     False  
3      True  

成功了。谢谢你,耶斯雷尔。我再过几分钟也不能接受这个答案,但很快就会接受。