我正在对啤酒数据集进行一些分析,并且想要更新“abv”列的 NaN 值以使用该风格的平均值。
我尝试通过 Pandas 查询来执行此操作,并且可以按特定样式作为局部变量进行查询:
df.query("styleName == @style")
但是,我似乎找不到一种方法来向此查询添加一种方法来返回“abv”为 NaN 的行。有办法做到这一点吗?
最佳答案
您可以使用behaviour NaN
- np.nan == np.nan
为 False
,因此 np.nan != np.nan
为 True
>:
df = pd.DataFrame({'styleName':list('abcdef'),
'B':[4,5,4,5,5,4],
'C':[7,8,9,4,2,3],
'D':[1,3,5,7,1,0],
'abv':[np.nan,np.nan,6,9,2,4],
'F':list('aaabbb')})
style = 'a'
print (df.query("styleName == @style & abv != abv"))
B C D F abv styleName
0 4 7 1 a NaN a
或 bool 索引:
print (df[(df['styleName'] == style) & (df['abv'].isnull())])
B C D F abv styleName
0 4 7 1 a NaN a
关于python - Pandas 通过局部变量查询并获取空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48583922/