Python 熊猫数据帧索引,其中

Python 熊猫数据帧索引,其中,python,pandas,Python,Pandas,所以我有一个葡萄酒数据的数据框架 wines_dict = { 'Appellation': list(wine_appellations), 'Ratings': list(wine_ratings), 'Region': list(wine_regions), 'Name': list(wine_names), 'Varietal': list(wine_varietals), 'WineType': list(wine_wine_types), 'RetailPrice': list(wi

所以我有一个葡萄酒数据的数据框架

wines_dict = {
'Appellation': list(wine_appellations),
'Ratings': list(wine_ratings),
'Region': list(wine_regions),
'Name': list(wine_names),
'Varietal': list(wine_varietals),
'WineType': list(wine_wine_types),
'RetailPrice': list(wine_retail_prices) 
}

wines_df = pd.DataFrame(
data = wines_dict,
columns =[
    'Region',
    'Ratings',
    'Appellation',
    'Name',
    'Varietal',
    'WineType',
    'RetailPrice'
    ]
)
我尝试使用wines_df.wherewines_df['Ratings']>95&~pd.isnullwines_df['Ratings']对其进行切片,但它仍在返回NaN评级

0          NaN
1          NaN
2          NaN
3          NaN
4         97.0
5         98.0
6          NaN

如何对其进行切片,使其返回所有大于95的非空值?

像这样的简单切片应该会为您提供所需的输出

wines_df[(wines_df['Ratings'] > 95) & (wines_df['Ratings'].notnull())]

不要用where。使用wines_df[…]来代替子集。为什么不使用where?我很困惑。嗯,拿着枪。哪里解决了问题。但是where上的文档显示它采用了一个布尔标准。。。。所以它应该是有效的,不是吗?因为不满足布尔掩码的条件将导致np.nan,从而返回与原始值具有相同形状的DF。where和mask的用途不用于切片/子切片。