[英]Selecting rows based on multiple columns in pandas - why are these two commands different?
我有一个 pandas DataFrame:
import pandas as pd
a = [0,0,1,1,2,7]
b = [1,0,0,1,1,4]
df = pd.DataFrame(list(zip(a,b)), columns = ('a','b'))
df
a b
0 0 1
1 0 0
2 1 0
3 1 1
4 2 1
5 7 4
我想 select a和b都大于零的所有行:
为什么这个命令只返回一些需要的行:
df[(df['a'] & df['b'])>0]
a b
3 1 1
5 7 4
虽然此其他命令返回所有所需的行:
df[((df['a']>0) & (df['b']>0))]
a b
3 1 1
4 2 1
5 7 4
这意味着总和应该大于1? 这些列中是否也有负值?
df[df.sum(axis=1)>1]
a b
3 1 1
4 2 1
5 7 4
或者
rows where values is greater than zero are summed along rows
df[df[df>0].sum(axis=1)>1]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.