python - Pandas 通过局部变量查询并获取空值

标签 python pandas

我正在对啤酒数据集进行一些分析,并且想要更新“abv”列的 NaN 值以使用该风格的平均值。

以下是我想要更新的数据集中的几个项目: enter image description here

我尝试通过 Pandas 查询来执行此操作,并且可以按特定样式作为局部变量进行查询:

df.query("styleName == @style")

但是,我似乎找不到一种方法来向此查询添加一种方法来返回“abv”为 NaN 的行。有办法做到这一点吗?

最佳答案

您可以使用behaviour NaN - np.nan == np.nanFalse,因此 np.nan != np.nanTrue >:

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/

相关文章:

python - 配置 Pyscripter 以管理不同的 python 发行版(Anaconda 和 ArcGIS)

python - 使用 pandas 格式化数据以进行生存分析

python - 如何从 pandas 多索引数据框中选择此类数据

python - pandas multiindex 中设置值失败

python - 根据另一个数据框中具有最小/最大值的列从 pandas 数据框中选择值

python - 从特定索引中重新选择 Pandas 数据框

python - Pandas corr和corrwith非常慢

python - OpenCV 找不到但可以导入

python - 成功点击小部件后 Bokeh 重置图形

python - 在 Twisted 中限制 http 客户端