当列名以数字开头时,Pandas 查询会抛出错误

2023-12-29

我正在尝试对以下数据框执行查询:

data = {'ab': [1,2,3], 'c1': [1,2,3], 'd': [1,2,3], 'e_f': [1,2,3]}
df = pd.DataFrame(data)
for cl in df.columns:
    print len(df.query('%s==2' %cl))

这很好用。但是,如果列名以数字开头,则会引发语法错误。

data = {'ab': [1,2,3], 'c1': [1,2,3], '1d': [1,2,3], 'e_f': [1,2,3]}
df = pd.DataFrame(data)
for cl in df.columns:
    print len(df.query('%s==2' %cl))

文件“”,第 1 行

1 d ==2
  ^

语法错误:语法无效

我认为问题与字符串的格式有关。我想知道形成此查询的正确方法是什么。


query uses pandas.eval,即有记录的 http://pandas.pydata.org/pandas-docs/dev/generated/pandas.eval.html#pandas.eval“将 Python 表达式作为字符串求值”。您的查询不是有效的 Python 表达式,因为1d在Python中不是有效的语法,所以你不能使用query以这种方式引用本专栏。

如果你确保所有列都是有效的 Python 标识符,pandas 中的事情通常会更容易。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当列名以数字开头时,Pandas 查询会抛出错误 的相关文章

随机推荐

  • 如何比较 Serial.read() 中的字符串?

    我在下面有这段代码 是我从哪里得到的这个论坛 http forum arduino cc index php topic 204484 0 html我遵循了这一点 它对我不起作用 但他们声称代码很好 我已经尝试了几种字符串比较方法 例如st
  • 多站点登录 ala Google

    不确定标题是否适合这个问题 但我想不出任何其他方式来表达它 假设您想要创建多个不同的 Web 应用程序 但您希望登录一个应用程序的用户能够直接访问您的其他应用程序而无需重新登录 假设他们也有权查看其他应用程序 如果我没记错的话 如果您登录了
  • 如何将 HTML5“必需”属性添加到 woocommerce_form_field

    我目前正在我的 WordPress 主题中开发 WooCommerce 注册页面 并添加了一个钩子供用户接受条款和条件 请参阅添加的 PHP 代码 HTML5为输入字段提供了一个超级有用的功能 就是在标签中添加 必填 新浏览器会自动提示警告
  • 当 phantomjs 在与 selenium hub 不同的机器上运行时,连接被拒绝

    是否可以在一台机器上有一个selenium集线器 并在另一台计算机上有一个phantomjs实例 以与selenium节点相同的方式连接到集线器 如果我在同一台机器上启动 selenium hub 和 phantomjs 实例 我可以成功运
  • jquery 可以在 iphone 的 safari 上运行吗?

    我正在开发一个网站 我使用 slimbox2 插件 类似于 lightbox 来使用 jquery 来生成照片放大 该插件适用于我尝试过的所有浏览器 除了 iPhone 上的 Safari 它在 Windows 版 Safari 上确实可以
  • 如何选择不运行文档测试?

    我正在编写一个 Rust 库 我想在我的文档中提供示例 编译作为运行的一部分cargo test do not run 这可能吗 我正在编写一个数据库客户端库 这些示例使用了一个假设的 不存在的数据库服务器 因此 这些示例在运行时总是会失败
  • pytube.exceptions.RegexMatchError:get_transform_object:找不到 var for={(.*?)} 的匹配项;

    使用以下代码使用 PyTube 库下载视频时 yt streams get highest resolution download PATH f PATH mp4 我收到错误 raise RegexMatchError caller get
  • 使用整数作为多维 numpy 数组的索引

    我有形状的布尔数组 n samples n items 它代表一个集合 my set i j 告诉样本是否i包含项目j 为了填充它 该数组被初始化为零 并接收另一个整数数组 其形状 n samples 3 告诉每个示例属于它的三个元素 例如
  • toBe(true) vs toBeTruthy() vs toBeTrue()

    有什么区别expect something toBe true expect something toBeTruthy and expect something toBeTrue 注意toBeTrue is a 自定义匹配器引入于jasmi
  • 运行 javaFx 应用程序时显示错误

    我正在运行 javaFx 应用程序 当我单击某些按钮时 它显示以下错误 无法创建透明舞台 因为您的屏幕不支持 Alpha 通道 您需要启用 XComposite 扩展 我无法找到问题所在 我花了将近一个小时但仍然没有输出 请帮忙 提前致谢
  • C 项目的 sonarqube 扫描仪属性文件

    我正在使用 sonarqube 来分析 X 文件 分析后我无法看到 C C 列出的完整气味 例如 除以零错误未在代码气味中列出 我的声纳扫描仪设置已使用以下选项重新配置为 C 语言sonar language c并使用 C 语言特定标签 例
  • SonarQube JavaScript 禁用部分代码

    我想禁用文件中的一段代码 例如函数 以供 SonarQube 分析 有关如何执行此操作的任何建议 我在这里找到了一些关于java的东西 gt 关闭某些代码的声纳 https stackoverflow com questions 10971
  • 多个站点上的 APC 用户缓存密钥冲突

    避免使用 APC 进行用户缓存的同一服务器上运行的多个站点之间发生密钥冲突的最佳选择是什么 我遇到过这样的问题 2 个或更多站点使用相同的缓存键 并期望在其下存储不同类型的项目 一个期望 json 字符串 另一个期望数组 另一个期望对象 他
  • 在 ORDER BY 子句中使用聚合函数和聚合函数的别名是否存在与性能相关的差异?

    我有一个相关问题ORDER BY or GROUP BY clause 例如我有以下查询 SELECT country name COUNT FROM user location WHERE country name IS NOT NULL
  • 是否可以将输入传递给正在运行的服务或守护进程?

    我想创建一个在 Linux 上作为守护进程运行的 Java 控制台应用程序 我已经创建了该应用程序和脚本以将该应用程序作为后台守护进程运行 应用程序运行并等待命令行输入 我的问题 是否可以将命令行输入传递给正在运行的守护进程 在Linux上
  • NG-click AngularDart 中的“clickHandler”没有 getter

    尝试让一个简单的点击处理程序正常工作 事实证明这是相当令人沮丧的 该应用程序只是一个测试应用程序 用于尝试不同的 Angular Dart 功能 使用 Dart 1 6 和 Angular 1 0 并在 Dartium 中运行 单击该按钮会
  • 枚举 Django Rest Framework 序列化器中的模型选择

    我有一个使用 Django 选择字段的模型 如下所示 class Question models Model QUESTION TYPES 10 Blurb 20 Group Header 21 Group Footer 30 Sub Gr
  • Python Paramiko exec_command 超时不起作用?

    我得到以下 ssh 命令 try print trying to restart self ssh exec command RR CMD self path ext self rport timeout 1 print restarted
  • 如何获取 WooCommerce 中所有可用的税率?

    我目前正在构建一个自定义表单 在此表单中 我想显示结帐时已存在的国家 地区选择 这是我的税务设置列表 这是我的代码
  • 当列名以数字开头时,Pandas 查询会抛出错误

    我正在尝试对以下数据框执行查询 data ab 1 2 3 c1 1 2 3 d 1 2 3 e f 1 2 3 df pd DataFrame data for cl in df columns print len df query s