首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python pandas -布尔过滤。T/F与返回表

Python pandas -布尔过滤。T/F与返回表
EN

Stack Overflow用户
提问于 2018-11-20 23:21:46
回答 2查看 58关注 0票数 0

我正在做一个练习,并且有一个学校信息的数据集。我想按学年过滤数据,这样我就可以:

代码语言:javascript
复制
data['demographics'] = data['demographics'][data['demographics']['schoolyear'] == 20112012]

我不太理解作业开始时的数据“人口统计”。

如果我只有:

代码语言:javascript
复制
data['demographics'] = [data['demographics']['schoolyear'] == 20112012]

代码返回True或False,而不是表的实际数据。如何添加数据“人口统计”让Python意识到我想要返回数据而不是T/F?

EN

回答 2

Stack Overflow用户

发布于 2018-11-20 23:25:23

data['demographics']['schoolyear'] == 20112012会告诉你它们是否匹配。

因此,[data['demographics']['schoolyear'] == 20112012]为您提供了TrueFalse的列表

所以,

代码语言:javascript
复制
data['demographics'][data['demographics']['schoolyear'] == 20112012]

在包含True的位置提取data['demographics']的值。

也就是说,这会给出你想要的值。

票数 0
EN

Stack Overflow用户

发布于 2018-11-20 23:38:23

第一个赋值应该是抛出一个ValueError:值的长度与索引的长度不匹配。

数据‘人口统计’这只返回数据帧的‘人口统计’列,然后使用这个[数据‘人口统计’== 20112012]过滤‘人口统计’列,使得学年是20112012。

语句中的错误是,您试图将过滤后的数据分配给数据“人口统计”,因为过滤后的数据包含的元素少于数据“人口统计”。

我建议您将过滤后的数据赋给一个新的变量,如下所示。

代码语言:javascript
复制
filteredData = data['demographics'][data['demographics']['schoolyear'] == 20112012]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53396193

复制
相关文章

相似问题

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