Python 3.x 获取另一列数据框中值的布尔列
我有一个数据框,如果便利设施列中有“电梯”,我想创建一个名为电梯的布尔列 此代码生成TypeError:类型为“float”的参数不可编辑: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'] 如果地址里有电梯,你知道我怎样才能得到正确/错误的答案吗 多谢各位
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
成功了。谢谢你,耶斯雷尔。我再过几分钟也不能接受这个答案,但很快就会接受。