Python 如何通过为每列选择特定范围来消除数据帧中的行?-熊猫
我正在开发一个数据框架,它显示巴西的房产租赁信息。这是数据集的一个示例:Python 如何通过为每列选择特定范围来消除数据帧中的行?-熊猫,python,pandas,dataframe,Python,Pandas,Dataframe,我正在开发一个数据框架,它显示巴西的房产租赁信息。这是数据集的一个示例: 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, 30
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)
以下是示例的外观:
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
我想过滤数据集,以便只选择最多有2个房间和2个浴室的公寓
你知道我怎么做吗?试试看
out = df.loc[(df.Rooms>=2) & (df.Bathrooms>=2)]
您可以使用以下方法:
out=test\u gdata.query('Bathrooms您可以过滤数据框上的值
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)
是的!这很有效!但是,我说最多有两个浴室和两个房间。所以,我想应该是这样的:test_gdata.loc[(test_gdata.rooms谢谢!这很有效。不过,我说最多有两个浴室和两个房间。所以,我认为应该是这样的:'test_gdata.query('bathroomUpdated answer:)
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)
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