简体   繁体   English

如何通过为每列选择特定范围来消除 dataframe 中的行? - Pandas

[英]How to eliminate rows in a dataframe by selecting a specific range for each column? - Pandas

I am working on a dataframe that displays information on property rentals in Brazil.我正在研究显示巴西房地产租赁信息的 dataframe。 This is a sample of the dataset:这是数据集的示例:

data = {
    'city': ['São Paulo', 'Rio', 'Recife'],
    'area(m2)': [90, 120, 60],
    'Rooms': [3, 2, 4],
    'Bathrooms': [2, 3, 3],
    'animal': ['accept', 'do not accept', 'accept'],
    'rent($)': [2000, 3000, 800]}

df = pd.DataFrame(
    data,
    columns=['city', 'area(m2)', 'Rooms', 'Bathrooms', 'animal', 'rent($)'])

print(df)

This is how the sample looks:这是示例的外观:

        city  area(m2)  Rooms  Bathrooms         animal  rent($)
0  São Paulo        90      3          2         accept     2000
1        Rio       120      2          3  do not accept     3000
2     Recife        60      4          3         accept      800

I want to filter the dataset in order to select only the apartments that have at maximum 2 rooms and 2 bathrooms.我想过滤数据集以便 select 仅具有最多 2 个房间和 2 个浴室的公寓。

Do you know how I can do this?你知道我该怎么做吗?

Try with尝试

out = df.loc[(df.Rooms>=2) & (df.Bathrooms>=2)]

You can use query() method:您可以使用query()方法:

out=test_gdata.query('Bathrooms<=2 and Rooms<=2')

You can filter the values on the dataframe您可以过滤 dataframe 上的值

import pandas as pd 

data = {
    'city': ['São Paulo', 'Rio', 'Recife'],
    'area(m2)': [90, 120, 60],
    'Rooms': [3, 2, 4],
    'Bathrooms': [2, 3, 3],
    'animal': ['accept', 'do not accept', 'accept'],
    'rent($)': [2000, 3000, 800]}

df = pd.DataFrame(
    data,
    columns=['city', 'area(m2)', 'Rooms', 'Bathrooms', 'animal', 'rent($)'])

df_filtered = df[(df['Rooms'] <= 2) & (df['Bathrooms'] <= 2)]

print(df_filtered)

Returns退货

        city  area(m2)  Rooms  Bathrooms         animal  rent($)
0  São Paulo        90      3          2         accept     2000
1        Rio       120      2          3  do not accept     3000
2     Recife        60      4          3         accept      800

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM