python - 为什么 where 子句在 pandas 中不起作用?
问题描述
鉴于此,我有 2 个数据集,如下所示:
import pandas as pd
import numpy as np
dict1 = {
"A" : range(1,6),
"B": np.random.randint(1,10,5)
}
dt1 = pd.DataFrame(dict1)
dict2 = {
"A" : range(1,6),
"K" : np.random.randint(3,8,5),
"Size of Sessile in Words": ["Small","Small","Medium","Large","Medium",]
}
dt2 = pd.DataFrame(dict2)
我正在尝试join
这两个数据框,但也使用了一个Where
子句:
size = "Small"
dt = dt1.merge(dt2, on='A').query('"Size of Sessile in Words" == {size}'.format(size) )
但是,它抱怨:
KeyError: 'size'
问题是什么?
解决方案
您需要对带有空格的列使用反引号并使用@size
您定义的变量:
dt = dt1.merge(dt2, on='A').query('`Size of Sessile in Words`==@size')
A B_x B_y Size of Sessile in Words
0 1 3 5 Small
1 2 2 5 Small
推荐阅读
- javascript - jquery 复选框警报文本(但不是值 attr )
- javascript - 我想从数组中制作 HTML 表格
- json - 在 Nestjs 中将响应转换为 JSON 响应标准
- r - 使用数据框的值创建交叉表
- azure - 禁用邮件环境审批者
- chart.js - 多数据集chartjs
- ios - Alamofire/RxSwift 如何在状态码 401 上自动刷新令牌和重试请求
- c# - ContinueWith 方法返回的任务不需要 Wait() 方法?
- mysql - Mariadb如何在ID序列中断时重置最小和最大变量
- flutter - 在颜色属性中动态添加字符串值