0
所以我有酒数据熊猫据帧索引,其中
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.where((wines_df['Ratings'] > 95) & (~pd.isnull(wines_df['Ratings'])))
切,但它仍然是返回回NaN
评级。
0 NaN
1 NaN
2 NaN
3 NaN
4 97.0
5 98.0
6 NaN
我该如何切片,以便它返回大于95的所有非空值?
不要使用'where'。使用'wines_df [...]'来代替子集。 –
为什么不用在哪里?我很困惑。呵呵拿出'.where'解决了这个问题。但是关于where()的文档http://pandas.pydata.org/pandas-docs/stable/indexing.html表明它需要一个布尔标准....所以它应该工作不应该吗? –
因为不满足布尔值掩码的条件会导致'np.nan',从而返回与原始形状相同的'DF'。 'where'&'mask'的目的不是用于切片/子集。 –