Pandas使用的注意事项
Pandas基于NumPy构建,它遵循NumPy设定的一些规则。因此,当您在使用Pandas时,需要额外留意一些事项,避免出现一些不必要的错误。
if语句使用
在if语句中,如果您需要将Pandas对象转换为布尔值时,需要格外留意,这种操作会引起ValueError异常,下面通过一组示例做简单说明:
import pandas as pdif pd.Series([False, True, False]): print('I am True')123复制代码类型:[python]
输出结果:
ValueError .... ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().123复制代码类型:[python]
从输出结果可以看出,上述代码引发了ValueError错误,并告诉我们Series的真值是不明确的。下面对其进行了简单分析:
如果if语句判断为True,可能是认为它的长度并不是0,反之if语句判断为Fasle,可能是认为Series的数据值中包含了False值,因此是真还是假,无法判断,所以此处抛出了ValueError错误。
上述代码给出的修改建议,如下所示:
import pandas as pd#使用 any()方法解决if pd.Series([False, True, False]).any(): print("I am 开课吧广场 https://topic.kaikeba.com/")1234复制代码类型:[python]
输出结果:
I am 开课吧广场 https://topic.kaikeba.com/1复制代码类型:[python]
如果要是计算单个布尔元素的Series对象,那么您可以使用bool()方法进行修改,如下所示:
import pandas as pd print(pd.Series([False]).bool())12复制代码类型:[python]
输出结果:
False12复制代码类型:[python]
布尔运算
如果在Pandas对象中使用==(相等)和!=(不相等)这样的布尔运算符时,将返回一个布尔序列,示例如下:
import pandas as pd s = pd.Series(range(4))#返回布尔值序列,行索引为3的位置为Trueprint(s==3)1234复制代码类型:[python]
输出结果:
0 False1 False2 False3 Truedtype: bool12345复制代码类型:[python]
isin()操作
isin()也会返回一个布尔序列,它用来判断元素值是否包含在的Series序列中。示例如下:
import pandas as pd s = pd.Series(list('abc')) s = s.isin(['a', 'c', 'e']) print(s)1234复制代码类型:[python]
输出结果:
0 True1 False2 Truedtype: bool1234复制代码类型:[python]
reindex()操作
reindex()函数表示重置行索引,该方法会生成新的Pandas对象,示例如下:
import pandas as pdimport numpy as np#index行索引使用字符和数字混合的形式df = pd.DataFrame(np.random.randn(6, 4), columns=['one', 'two', 'three','four'],index=['a','b',2,3,'e',5])print (df)#数字与字符混合后取数据print (df.reindex(['a','b',5]))print (df.reindex([2,'e']))12345678复制代码类型:[python]
输出结果:
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
赞 (0)