Pandas 删除没有';t在列中浮动值

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:

我的任务是在以下条件下找到结果:

[(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'])

  • 是CSV数据。

    实现该数据的一种方法:

    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
    替换任何非浮点行,然后删除该行