Pandas基于NumPy構(gòu)建,它遵循NumPy設(shè)定的一些規(guī)則。因此,當(dāng)您在使用Pandas時,需要額外留意一些事項,避免出現(xiàn)一些不必要的錯誤。 if語句使用在if語句中,如果您需要將Pandas對象轉(zhuǎn)換為布爾值時,需要格外留意,這種操作會引起ValueError異常,下面通過一組示例做簡單說明: import pandas as pdif pd.Series([False, True, False]): print('I am True')123復(fù)制代碼類型:[python] 輸出結(jié)果: ValueError .... ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().123復(fù)制代碼類型:[python] 從輸出結(jié)果可以看出,上述代碼引發(fā)了ValueError錯誤,并告訴我們Series的真值是不明確的。下面對其進(jìn)行了簡單分析: 如果if語句判斷為True,可能是認(rèn)為它的長度并不是0,反之if語句判斷為Fasle,可能是認(rèn)為Series的數(shù)據(jù)值中包含了False值,因此是真還是假,無法判斷,所以此處拋出了ValueError錯誤。 上述代碼給出的修改建議,如下所示: import pandas as pd#使用 any()方法解決if pd.Series([False, True, False]).any(): print("I am 開課吧廣場 https://topic./")1234復(fù)制代碼類型:[python] 輸出結(jié)果: I am 開課吧廣場 https://topic./1復(fù)制代碼類型:[python] 如果要是計算單個布爾元素的Series對象,那么您可以使用bool()方法進(jìn)行修改,如下所示: import pandas as pd print(pd.Series([False]).bool())12復(fù)制代碼類型:[python] 輸出結(jié)果: False12復(fù)制代碼類型:[python] 布爾運算如果在Pandas對象中使用==(相等)和!=(不相等)這樣的布爾運算符時,將返回一個布爾序列,示例如下: import pandas as pd s = pd.Series(range(4))#返回布爾值序列,行索引為3的位置為Trueprint(s==3)1234復(fù)制代碼類型:[python] 輸出結(jié)果: 0 False1 False2 False3 Truedtype: bool12345復(fù)制代碼類型:[python] isin()操作isin()也會返回一個布爾序列,它用來判斷元素值是否包含在的Series序列中。示例如下: import pandas as pd s = pd.Series(list('abc')) s = s.isin(['a', 'c', 'e']) print(s)1234復(fù)制代碼類型:[python] 輸出結(jié)果: 0 True1 False2 Truedtype: bool1234復(fù)制代碼類型:[python] reindex()操作reindex()函數(shù)表示重置行索引,該方法會生成新的Pandas對象,示例如下: import pandas as pdimport numpy as np#index行索引使用字符和數(shù)字混合的形式df = pd.DataFrame(np.random.randn(6, 4), columns=['one', 'two', 'three','four'],index=['a','b',2,3,'e',5])print (df)#數(shù)字與字符混合后取數(shù)據(jù)print (df.reindex(['a','b',5]))print (df.reindex([2,'e']))12345678復(fù)制代碼類型:[python] 輸出結(jié)果: one two three four a 0.727276 -0.360391 0.381606 1.195126b -1.974803 0.009088 -1.065647 0.6286992 0.156798 -1.116029 1.020673 -0.2154853 -1.310007 0.601206 0.417439 0.049863e 0.232375 0.235999 -1.886337 -0.4211105 0.488758 0.108129 -1.405737 2.375517 one two three four a 0.727276 -0.360391 0.381606 1.195126b -1.974803 0.009088 -1.065647 0.6286995 0.488758 0.108129 -1.405737 2.375517 one two three four2 0.156798 -1.116029 1.020673 -0.215485e 0.232375 0.235999 -1.886337 -0.421110 |
|