我想使用 Pandas 中的 .query() 方法创建 isna() 子句
但我收到错误。
对于可重现的示例:
import pandas as pd
import seaborn as sns
mpg = sns.load_dataset('mpg')
mpg[mpg['cylinders'].isna()] # This works
mpg.query('cylinders.isna()') # This raises an exception
TypeError: 'Series' objects are mutable, thus they cannot be hashed
Run Code Online (Sandbox Code Playgroud)
使用参数engine='python'更改默认值engine='numexpr':
print(mpg.query('cylinders.isna()', engine='python'))
Run Code Online (Sandbox Code Playgroud)
样本:
mpg = pd.DataFrame({'cylinders':['a', np.nan]})
print(mpg)
cylinders
0 a
1 NaN
print(mpg.query('cylinders.isna()', engine='python'))
cylinders
1 NaN
Run Code Online (Sandbox Code Playgroud)
有关更多信息,query请参阅使用 pd.eval() 在 pandas 中动态求值。
| 归档时间: |
|
| 查看次数: |
1863 次 |
| 最近记录: |