python - 具有双索引的 Pandas 查询
问题描述
对于具有双列索引的数据帧,我在使用 pandas 查询中的布尔索引时遇到问题。
我有以下数据框:
df2 =
val1 val2
mean size mean size
col1
c 2.5 2 5 2
d 4.5 2 9 2
e 0.5 2 1 2
其中 val1 和 val2 是第一级列索引,mean 和 size 是第二级索引。
然后我想使用如下语法选择第一列 ('val1','mean') > 3 的行:
df2.query('(val1, mean) > 3')
我知道这可以通过
df2[df2[('val1','mean')] > 3],
但我想知道是否可以在查询中使用,因为语法更简洁。
解决方案
让我们试试这个:
isin 返回一个布尔系列并 ~ 否定布尔系列
df.apply(lambda x: x['column_name'] in x['column_name'], axis=1)
而不是“在”,你可以把你的条件,如> 3
df.loc[~df['column_name'].isin(some_values)]
或者
df['column_name'] >= 3
是的,有可能通过“查询”来执行它
df.query('(a < b) & (b < c)')
推荐阅读
- java - 如何使用 mySQL 工作台从 lombok 手动设置自动生成的 id?
- kubernetes - 获取信息 Kubernetes 命名空间
- pandas - Pandas - 以 bin 间隔计数频率
- python - 如何在 MSYS2 中使用 Windows Python 安装
- r - 创建折线图以显示特定年份每种类型的总磅数
- networking - snmp陷阱对象与陷阱自身的关系
- c# - 在 do-while 循环中删除了用户输入数组的输入
- postgresql - 重复记录postgresql
- google-apps-script - 使用应用脚本将谷歌幻灯片转换为图像时出错
- laravel - 使用 Laravel Livewire 和 Laravel Fortify 进行登录