Pandas 删除没有';t在列中浮动值
我有这个df: 我的任务是在以下条件下找到结果:Pandas 删除没有';t在列中浮动值,pandas,csv,row,Pandas,Csv,Row,我有这个df: 我的任务是在以下条件下找到结果: [(df.neighbourhood_group == 'Manhattan') & (df.room_type == 'Entire home/apt') & (df.price.between(150.0, 175.0))]` 但这是行不通的。错误消息显示: TypeError:“>=”在“str”和“float”的实例之间不受支持 因为在price列中,我在某个地方写了Private room的值 我如何编写一段代码,告
[(df.neighbourhood_group == 'Manhattan') & (df.room_type == 'Entire home/apt') & (df.price.between(150.0, 175.0))]`
但这是行不通的。错误消息显示:
TypeError:“>=”在“str”和“float”的实例之间不受支持
因为在price
列中,我在某个地方写了Private room
的值
我如何编写一段代码,告诉您只保留浮点值,而删除所有其他值
注意
这些措施不起作用:
df=df[df['price']。应用(lambda x:type(x)in[float])
clean['price']=df['price'].str.replace('Private room','0.0')
clean.price=clean.price.astype(float)
df.选择数据类型(排除=['str'])
df['price'] = df.apply(lambda r: r['price'] if type(x['price'])==float else np.nan, axis=1)
df.dropna(inplace=True)
通过这种方式,您将用np.nan
替换任何非浮点行,然后删除此类行。实现此目的的一种方法:
df['price'] = df.apply(lambda r: r['price'] if type(x['price'])==float else np.nan, axis=1)
df.dropna(inplace=True)
这样,您将用np.nan
替换任何非浮点行,然后删除该行