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

使用pandas的to_dict方法报错:仅允许传入布尔值DataFrame

解决Pandas to_dict时的"Must pass DataFrame with boolean values only"错误

看来你在这里犯了个小语法失误,咱们一步步拆解问题:

错误根源

你先通过cols_to_retain = datacan[[...]]创建了一个包含目标列的DataFrame,但接下来用datacan[cols_to_retain]去索引原数据集的写法,是Pandas里的布尔索引语法——这种写法要求传入的必须是由布尔值组成的DataFrame/Series,而你传入的是普通的列数据,所以触发了这个报错。

修复后的完整代码

其实根本不需要多此一举用datacan[cols_to_retain],直接对已经筛选好列的cols_to_retain调用to_dict()就可以了:

import pandas as pd
dataset = "C:/Users/ashik swaroop/Desktop/anaconda/Gene Dataset/acancergenecensus.csv"
datacan = pd.read_csv(dataset)
datacan = datacan.fillna(0)
# 直接获取包含指定列的DataFrame
cols_to_retain = datacan[[ "Tumour_Types_Somatic","Tumour_Types_Germline","Mutation_Types","Tissue_Type"]]
# 直接对筛选后的结果转字典
cat_dict = cols_to_retain.to_dict(orient='records')

可选优化(让代码更紧凑)

如果你想简化步骤,也可以把列筛选和转字典合并成一行:

cat_dict = datacan[[ "Tumour_Types_Somatic","Tumour_Types_Germline","Mutation_Types","Tissue_Type"]].to_dict(orient='records')

这样就能顺利生成你需要的字典列表啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:56:09