首页 > 解决方案 > 仅过滤 df 中的 1 列而不在 1 行中返回整个 DF

问题描述

我希望有一种方法可以从 df 返回一个系列,同时在 1 行中过滤它。过滤后有没有办法从我的df中返回一列?目前我的过程是这样的

df = df[df['a'] > 0 ]
list = df['a']

标签: pythonpandas

解决方案


正如@JohnM 在他的评论中所写的那样,df.loc语法是执行此操作的首选方法,尽管我发现@Don'tAccept 的语法更具可读性和可扩展性,但是因为它可以处理列名中带有空格的情况。这些结合起来像:

df.loc[df['a'] > 0, 'a']

请注意,这是可扩展的以提供多个列,例如,如果您想要列 'a' 和 'b' 你会这样做:

df.loc[df['a'] > 0, ['a', 'b']]

最后,您可以通过检查来验证df.adf['a']是否相同

in: df.a is df['a'] 
out: True

这里is(与 相对==)表示df.adf['a']指向内存中的同一个对象,因此它们是可以互换的。


推荐阅读