簡體   English   中英

Python Pandas & 運算符未返回正確的值

[英]Python Pandas & operator not returning right values

在代碼中:

df = pd.DataFrame([[False, 0], [False, 1], [False, 2], [False, 2], [False, 3], [False, 4], [False, 5]], 
        columns=['cond1', 'cond2'])
df['test'] = (~df['cond1']) & (df['cond2'])

我期望在除第一行之外的所有行中的test列中獲得值True ,因為除 0 之外的任何數字的真實值都是True 但是,當cond2中的值為 2 或 4 時,我得到False 。為什么?

上述代碼的output:

   cond1 cond2 test

0  False 0     False 

1  False 1     True 

2  False 2     False 

3  False 2     False 

4  False 3     True 

5  False 4     False 

6  False 5     True 

當您對 pandas 列執行“&”操作時,python 無法解釋其他數字。 它正在執行設置操作而不是 boolean 操作。 因此,您需要通過將第二列轉換為 bool 來幫助它:

df = pd.DataFrame([[False, 0], [False, 1], [False, 2], [False, 2], [False, 3], [False, 4], [False, 5]], 
        
columns=['cond1', 'cond2'])

df['test'] = (~df['cond1']) & ((df['cond2'].astype(bool)))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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