python - 仅过滤 df 中的 1 列而不在 1 行中返回整个 DF
问题描述
我希望有一种方法可以从 df 返回一个系列,同时在 1 行中过滤它。过滤后有没有办法从我的df中返回一列?目前我的过程是这样的
df = df[df['a'] > 0 ]
list = df['a']
解决方案
正如@JohnM 在他的评论中所写的那样,df.loc
语法是执行此操作的首选方法,尽管我发现@Don'tAccept 的语法更具可读性和可扩展性,但是因为它可以处理列名中带有空格的情况。这些结合起来像:
df.loc[df['a'] > 0, 'a']
请注意,这是可扩展的以提供多个列,例如,如果您想要列 'a' 和 'b' 你会这样做:
df.loc[df['a'] > 0, ['a', 'b']]
最后,您可以通过检查来验证df.a
和df['a']
是否相同
in: df.a is df['a']
out: True
这里is
(与 相对==
)表示df.a
并df['a']
指向内存中的同一个对象,因此它们是可以互换的。
推荐阅读
- sql-server - 在 SQL 中使用 CURSOR 从其他表获取值时更新一个表的记录
- google-cloud-storage - 删除文件夹时,无法使用版本控制在 GCS 中恢复文件
- c++11 - 为什么外部库在cmake中添加编译器标志-std=gnuc++11
- java - 编译在 Eclipse 中有效,但在 maven 中无效
- javascript - 当 JavaScript 对象中的键在方括号中时,它究竟表示什么
- solr - 如何在solr的子文档中添加相同的字段
- c# - 从 AJAX 调用时,列表似乎为空
- ruby - 使用 Nokogiri 和 Xpath 按属性值过滤 XML 元素
- google-apps-script - Google Sheet onEdit(e) 有权限问题
- kdb - 检查给定日期是否是该月的最后一天