You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否将Pandas表达式转换为字符串?实现query()逆操作

Pandas表达式转换为字符串的方法

要把Pandas的筛选表达式转为对应字符串用于图表标题,这里提供两种实用方案:

方案1:利用inspect模块获取表达式源码

适合已经写好的表达式,通过封装为lambda函数来提取源码文本:

import inspect
import pandas as pd

# 示例DataFrame
df = pd.DataFrame({'Date': ['2021', '2022', '2023']})

# 将目标表达式封装为lambda
expr_lambda = lambda: df['Date'].ge('2022')
# 提取并处理源码字符串
expr_str = inspect.getsource(expr_lambda).strip().split(':', 1)[-1].strip()

# 输出结果:df['Date'].ge('2022')
print(expr_str)
# 用于图表标题示例
# plt.title(f"数据筛选:{expr_str}")

方案2:显式维护表达式字符串与执行逻辑

如果需要同时执行筛选和保留表达式文本,可以直接定义字符串并通过eval()执行:

import pandas as pd

df = pd.DataFrame({'Date': ['2021', '2022', '2023']})

# 直接定义表达式字符串
expr_str = "df['Date'].ge('2022')"
# 执行筛选
mask = eval(expr_str)
filtered_df = df[mask]

# 直接使用expr_str作为标题文本
print(f"图表标题:筛选条件 - {expr_str}")

注意事项

  • 使用eval()时要确保表达式字符串是可信的,避免注入风险
  • 复杂多行表达式可能需要调整inspect.getsource()的处理逻辑,比如去除多余换行或缩进

内容的提问来源于stack exchange,提问作者BSalita

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 18:35:15