求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
要资料
 
追随技术信仰

随时听讲座
每天看新闻
 
 
Pandas 教程
1. Pandas 是什么
2.Pandas库下载和安装
3.Pandas Series入门教程
4.Pandas DataFrame入门教程
5.Pandas Panel三维数据结构
6.Python Pandas描述性统计
7.Pandas使用自定义函数
8.Pandas reindex重置索引
9.Pandas iteration遍历
10.Pandas sorting排序
11.Pandas去重函数:drop_duplicates()
12.Python Pandas处理字符串(方法详解)
13.Pandas设置数据显示格式
14.Pandas loc/iloc用法详解
15.Python Pandas统计函数
16.Python Pandas窗口函数
17.Python Pandas聚合函数
18.Python Pandas缺失值处理
19.Pandas groupby分组操作详解
20.Pandas merge合并操作
21.Pandas concat连接操作
22.Python Pandas时间序列
23.Pandas日期时间格式化
24.Padans Timedelta时间差
25.Pandas随机选择样本
26.Pandas数据重采样
27.Python Pandas分类对象
28.Python Pandas绘图
29.Python Pandas读取文件
30.Pandas csv读写文件
31.Pandas Excel读写操作
32.Pandas index操作索引
33.Pandas分层索引入门教程
34.Pandas执行SQL操作
35.Pandas和NumPy的比较
36.Pandas使用的注意事项
 

 
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.#使用 any()方法解决
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())

输出结果:

False


布尔运算

如果在 Pandas 对象中使用 == (相等)和 != (不相等) 这样的布尔运算符时,将返回一个布尔序列,示例如下:

1.import pandas as pd
2.s = pd.Series(range(4))
3.#返回布尔值序列,行索引为3的位置为True
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.#index行索引使用字符和数字混合的形式
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

您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码: 验证码,看不清楚?请点击刷新验证码 必填



20 次浏览