首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >*必须仅在尝试使用DataFrame时传递布尔值的to_dict

*必须仅在尝试使用DataFrame时传递布尔值的to_dict
EN

Stack Overflow用户
提问于 2018-05-07 16:40:37
回答 1查看 1.5K关注 0票数 0
代码语言:javascript
复制
import pandas as pd
dataset = "C:/Users/ashik swaroop/Desktop/anaconda/Gene Dataset/acancergenecensus.csv"
datacan = pd.read_csv(dataset)
datacan = datacan.fillna(0)
cols_to_retain = datacan[[ "Tumour_Types_Somatic","Tumour_Types_Germline","Mutation_Types","Tissue_Type"]]
cat_dict = datacan[ cols_to_retain ].to_dict( orient = 'records' )

运行后出现错误,请提供帮助或建议:

代码语言:javascript
复制
cat_dict = datacan[ cols_to_retain ].to_dict( orient = 'records' )
Traceback (most recent call last):

  File "<ipython-input-47-dde9a2c1af34>", line 1, in <module>
    cat_dict = datacan[ cols_to_retain ].to_dict( orient = 'records' )

  File "C:\Users\ashik swaroop\Anaconda2\lib\site-packages\pandas\core\frame.py", line 2055, in __getitem__
    return self._getitem_frame(key)

  File "C:\Users\ashik swaroop\Anaconda2\lib\site-packages\pandas\core\frame.py", line 2130, in _getitem_frame
    raise ValueError('Must pass DataFrame with boolean values only')

ValueError: Must pass DataFrame with boolean values only
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-07 16:42:08

你需要改变:

代码语言:javascript
复制
cols_to_retain = datacan[[ "Tumour_Types_Somatic","Tumour_Types_Germline","Mutation_Types","Tissue_Type"]]
cat_dict = datacan[ cols_to_retain ].to_dict( orient = 'records' )

至:

代码语言:javascript
复制
cols_to_retain = [ "Tumour_Types_Somatic","Tumour_Types_Germline","Mutation_Types","Tissue_Type"]
cat_dict = datacan[ cols_to_retain ].to_dict( orient = 'records' )

因为如果select by []被称为子集并返回过滤的DataFrame,而不是列名。

另一个可能的解决办法是:

代码语言:javascript
复制
df = datacan[[ "Tumour_Types_Somatic","Tumour_Types_Germline","Mutation_Types","Tissue_Type"]]

cat_dict = df.to_dict( orient = 'records' )
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50218849

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档