簡體   English   中英

基於 pandas 中的多列選擇行 - 為什么這兩個命令不同?

[英]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 ab都大於零的所有行:

為什么這個命令只返回一些需要的行:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM