(&精拟,|)和(and,or)是兩組比較相似的運算符虱歪,用在“與”/ “或”上蜂绎,在用法上有些許區(qū)別。
(&笋鄙,|)和(and师枣,or)是用來比較兩組變量的,格式基本上是:
a& ba| ba and ba or b
如果a萧落,b是數(shù)值變量践美, 則&, |表示位運算找岖, and陨倡,or則依據(jù)是否非0來決定輸出,
&许布, |:
#1&2兴革,2在二進制里面是10,1在二進制中是01,那么01與運算10得到是01&2# 輸出為0,1|2# 輸出為3
and, or:
# 判斷變量是否為0杂曲, 是0則為False庶艾,非0判斷為True, # and中含0擎勘,返回0咱揍; 均為非0時,返回后一個值棚饵,2and0# 返回02and1# 返回11and2# 返回2# or中煤裙, 至少有一個非0時,返回第一個非0,2or0# 返回22or1# 返回20or1# 返回1
如何a, b是邏輯變量噪漾, 則兩類的用法基本一致
In[103]:(3>0) | (3<1)Out[103]:TrueIn[104]:(3>0)and(3<1)Out[104]:FalseIn[105]:(3>0)or(3<1)Out[105]:TrueIn[106]:(3>0)&(3<1)Out[106]:False
值得提及的是在DataFrame的切片過程硼砰,要注意邏輯變量的使用,
需要求得滿足多個邏輯條件的數(shù)據(jù)時怪与,要使用& 和|,在某些條件下用and/ or會報錯‘ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().’
target_url ="http://aima.cs.berkeley.edu/data/iris.csv"data = pd.read_csv(target_url, header=None, columns=['s_line','s_wid','p_line','p_wid','kind'])data.columns = ['s_line','s_wid','p_line','p_wid','kind']x_data = data.iloc[:, :-1]# 在多個邏輯條件下缅疟,用& 或者|分别,x_1 = x_data[x_data['s_line'] >6& x_data['p_wid'] >0]
好了,本文就給大伙分享到這里存淫,文末分享一波福利
獲取方式:加python群 839383765 即可獲仍耪丁!