首页 > 解决方案 > 熊猫中的字符串规则

问题描述

我想使用 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[] 和 '()' 。

我不知道这是否可能,或者可能存在另一种方式来写这个。

谢谢

标签: pythonpandas

解决方案


>>> 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 |

推荐阅读