|
Pandas使用的注意事项 |
20 次浏览 |
|
|
|
Pandas 基于 NumPy 构建,它遵循 NumPy 设定的一些规则。因此,当您在使用 Pandas 时,需要额外留意一些事项,避免出现一些不必要的错误。
if语句使用
在 if 语句中,如果您需要将 Pandas 对象转换为布尔值时,需要格外留意,这种操作会引起 ValueError 异常, 下面通过一组示例做简单说明:
1.import pandas as pd 2.if pd.Series([False, True, False]): 3. print('I am True') |
输出结果:
ValueError
....
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all(). |
从输出结果可以看出,上述代码引发了 ValueError 错误,并告诉我们 Series 的真值是不明确的。下面对其进行了简单分析:
如果 if 语句判断为 True,可能是认为它的长度并不是 0,反之 if 语句判断为 Fasle,可能是认为 Series 的数据值中包含了 False 值,因此是真还是假,无法判断,所以此处抛出了 ValueError 错误。
上述代码给出的修改建议,如下所示:
1.import pandas as pd 2. 3.if pd.Series([False, True, False]).any(): 4. print("I am 编程帮 www.biancheng.com") |
输出结果:
I am 编程帮 www.biancheng.com |
如果要是计算 单个 布尔元素的 Series 对象,那么您可以使用 bool() 方法进行修改,如下所示:
1.import pandas as pd 2.print(pd.Series([False]).bool()) |
输出结果:
布尔运算
如果在 Pandas 对象中使用 == (相等)和 != (不相等) 这样的布尔运算符时,将返回一个布尔序列,示例如下:
1.import pandas as pd 2.s = pd.Series(range(4)) 3. 4.print(s==3) |
输出结果:
0 False
1 False
2 False
3 True
dtype: bool |
isin()操作
isin() 也会返回一个布尔序列,它用来判断元素值是否包含在的 Series 序列中。示例如下:
1.import pandas as pd 2.s = pd.Series(list('abc')) 3.s = s.isin(['a', 'c', 'e']) 4.print(s) |
输出结果:
0 True
1 False
2 True
dtype: bool |
reindex()操作
reindex() 函数表示重置行索引,该方法会生成新的 Pandas 对象,示例如下:
1.import pandas as pd 2.import numpy as np 3. 4.df = pd.DataFrame(np.random.randn(6, 4), columns=['one', 'two', 'three','four'],index=['a','b',2,3,'e',5]) 5.print (df) 6. 7.print (df.reindex(['a','b',5])) 8.print (df.reindex([2,'e'])) |
输出结果:
one two three four
a 0.727276 -0.360391 0.381606 1.195126
b -1.974803 0.009088 -1.065647 0.628699
2 0.156798 -1.116029 1.020673 -0.215485
3 -1.310007 0.601206 0.417439 0.049863
e 0.232375 0.235999 -1.886337 -0.421110
5 0.488758 0.108129 -1.405737 2.375517
one two three four
a 0.727276 -0.360391 0.381606 1.195126
b -1.974803 0.009088 -1.065647 0.628699
5 0.488758 0.108129 -1.405737 2.375517
one two three four
2 0.156798 -1.116029 1.020673 -0.215485
e 0.232375 0.235999 -1.886337 -0.421110 |
|
20 次浏览 |
|
|
|
|