python - 将变量传递到数据框查询中的布尔表达式
问题描述
我有一个需要迭代的数据框,每次迭代我想选择列的值等于迭代索引的数据行,并且每次迭代我想在它产生的 binned_dataframe 上应用函数。X_bin 和 Y_bin 列填充了从 0 到 10 的整数值。
所以看起来有点像这样
i = 0
j = 0
for i in range(10):
for j in range(10):
binned_dataframe = dataframe.query('X_bin == i & Y_bin == j')
但这把我扔了
UndefinedVariableError: name 'i' is not defined
但是,当我将 i 和 j 换成这样的整数时
binned_dataframe = dataframe.query('X_bin == 5 & Y_bin == 5')
它确实有效,所以问题似乎在于在布尔值中使用了一个变量。有谁知道解决这个问题的方法或选择数据的更好方法?我需要一个循环来应用这些操作,因为实际上我有大约 1500 种不同的 X_bin、Y_bin 组合......请帮忙!
解决方案
看起来您需要应用字符串格式来获取字符串中的i
和j
值:
binned_dataframe = dataframe.query(f'X_bin == {i} & Y_bin == {j}')
推荐阅读
- vespa - 子组分布键很奇怪
- android-studio - gradle 项目同步失败。基本功能
- c++ - 为什么在不抛出 C++ 的情况下捕获异常?
- java - SharedPreferences android.content.Context.getSharedPreferences(java.lang.String, int)
- swiftui - NavigationLink 标记和选择未按预期工作
- angular - Angular EventEmitter 不适用于某些延迟加载的模块
- javascript - 如何打开从 axios 收到的 csv 文件在新窗口中获取响应
- javascript - 无法解构“this.props.data”的属性“聊天”,因为它未定义
- puppeteer - 在 puppeteer headful 模式下处理打印对话框
- python - 如何使用python验证给定的URL是域还是子域或确切的页面?