python - 无法查询 Pandas 0.14.0 中的局部变量

标签 python pandas

我可以查询一个明确的值:

fills.query('Symbol=="BUD US"')

现在我想查询一个变量:

In [40]: my_symbol
Out[40]: 'BUD US'

在 pandas 0.13.1 中,我可以简单地使用:

fills.query('Symbol==my_symbol')

pandas 0.14.0 不再允许这样做,因为 local variables must be referred to explicitly .所以我尝试了

fills.query('Symbol==@my_symbol')

但这返回了一个错误

KeyError: '__pd_eval_local_my_symbol'

我能够更改我的一些其他代码以使用显式局部变量,但这个代码行不通。有什么想法吗? dtype 是 object,如果有帮助的话。

最佳答案

似乎是 0.14 中的一个错误,特别是字符串(例如整数)。我在这里提出了一个问题:https://github.com/pydata/pandas/issues/7300 .
作为目前的解决方法,您可以将其包装在列表中:

In [40]: fills
Out[40]: 
    Price  Symbol
0  109.70  BUD US
1  109.72  BUD US
2  183.30  IBM US
3  183.35  IBM US

In [41]: my_symbol = ['BUD US']

In [42]: fills.query('Symbol==@my_symbol')
Out[42]: 
    Price  Symbol
0  109.70  BUD US
1  109.72  BUD US

关于python - 无法查询 Pandas 0.14.0 中的局部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23974664/

相关文章:

python - 使用从 bdist_rpm 安装的模块时 pkg_resources.DistributionNotFound

python - 从Python文件中读取多行

python - 带有条件 python 的部分 fillna

python - 在 Pandas 日期时间列中标记夏令时 (DST) 小时

python - Pandas 对象索引

Python/Scipy kde 拟合、缩放

python - 用于提取特定变量和值的正则表达式

python - 创建一个允许调整基值的属性类?

python - 使用 Session.run 在 Tensorflow 代码中进行并行编程

python - 使用第一列作为索引的 Excel 到 Pandas DataFrame