python - 熊猫中的字符串规则
问题描述
我想使用 Pandas 读取字符串中的简单规则。
我写了这个并且它有效:
import numpy as np
import pandas as pd
d = {'col1': [1, 2], 'col2': [3, 4]}
df = pd.DataFrame(data=d)
a = "(df['col1'] > 1) & (df['col2'] > 3)"
df[eval(a)]
但是,我想在我的字符串值中删除 df[] 和 '()' 。
我不知道这是否可能,或者可能存在另一种方式来写这个。
谢谢
解决方案
>>> import numpy as np
>>> import pandas as pd
>>> d = {'col1': [1, 2], 'col2': [3, 4]}
>>> df = pd.DataFrame(data=d)
>>> df
| | col1 | col2 |
|---:|-------:|-------:|
| 0 | 1 | 3 |
| 1 | 2 | 4 |
>>> a = 'col1 > 1 & col2 > 3'
>>> df.query(a)
| | col1 | col2 |
|---:|-------:|-------:|
| 1 | 2 | 4 |
推荐阅读
- c# - 更新syncfusion nuget后重建项目时出错
- arrays - 以下问题中的递归如何工作?
- python - 如何获取给定时间段内列出的所有股票代码
- mysql - 选择查询输出中的常量列值
- android - SQLite 多个查询比连接更快
- python - 如何在我的多索引熊猫数据框中只选择每个级别 (0) 的前两行?
- selenium - 如何使用python在selenium的搜索框中输入数据后执行输入键操作
- c++ - QT C++ 项目(使用 XML 创建登录)
- java - 为什么在使用 Visual Studio Code 的 Java 调试器扩展时运行此代码,同时在使用 javac 编译时生成错误?
- kubernetes - Helm 无法升级图表 - 将服务从 NodePort 更改为 ClusterIP?