当前位置: 首页 > news >正文

35-Pandas使用的注意事项

Pandas使用的注意事项

Pandas 基于 NumPy 构建,它遵循 NumPy 设定的一些规则。因此,当您在使用 Pandas 时,需要额外留意一些事项,避免出现一些不必要的错误。

if语句使用

在 if 语句中,如果您需要将 Pandas 对象转换为布尔值时,需要格外留意,这种操作会引起 ValueError 异常, 下面通过一组示例做简单说明:

if pd.Series([False, True, False]):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 错误。

上述代码给出的修改建议,如下所示:

import pandas as pd
if pd.Series([False, True, False]).any():print('I am True')

输出结果:

I am True

如果要是计算单个布尔元素的 Series 对象,那么您可以使用 bool() 方法进行修改,如下所示:

import pandas as pd
print(pd.Series([False]).bool())

输出结果:

False

布尔运算

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

import pandas as pd
s = pd.Series(range(4))
#返回布尔值序列,行索引为3的位置为True
print(s==3)

输出结果:

0    False
1    False
2    False
3    True
dtype: bool

isin()操作

isin() 也会返回一个布尔序列,它用来判断元素值是否包含在的 Series 序列中。示例如下:

import pandas as pd
s = pd.Series(list('abc'))
s = s.isin(['a', 'c', 'e'])
print(s)

输出结果:

0    True
1    False
2    True
dtype: bool

reindex()操作

reindex() 函数表示重置行索引,该方法会生成新的 Pandas 对象,示例如下:

import pandas as pd
import 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']))

输出结果:

        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.375517one       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.375517one       two     three      four
2  0.156798 -1.116029  1.020673 -0.215485
e  0.232375  0.235999 -1.886337 -0.421110

相关文章:

  • 语音唤醒入门(基于ESP-skainet)
  • 万和-集训刷题1
  • windows电脑网络重置后wifi列表消失怎么办?
  • 2024攻防演练:亚信安全新一代WAF,关键时刻守护先锋
  • SpringBoot中整合ONLYOFFICE在线编辑
  • 使用Llama3/Qwen2等开源大模型,部署团队私有化Code Copilot和使用教程
  • 在线JSON可视化工具--改进
  • Java并发编程知识整理笔记
  • 用html+css设计一个列表清单小卡片
  • 如何在Java中实现PDF生成
  • SCI一区级 | Matlab实现BO-Transformer-LSTM多特征分类预测/故障诊断
  • GeoServer改造Springboot源码十(样式管理设计)
  • AR视频技术与EasyDSS流媒体视频管理平台:打造沉浸式视频体验
  • Graalvm配置文件与Feature和Substitute机制介绍
  • 学习测试2-方法
  • IE9 : DOM Exception: INVALID_CHARACTER_ERR (5)
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • 【跃迁之路】【733天】程序员高效学习方法论探索系列(实验阶段490-2019.2.23)...
  • JWT究竟是什么呢?
  • Laravel Mix运行时关于es2015报错解决方案
  • Linux Process Manage
  • Redux系列x:源码分析
  • SAP云平台里Global Account和Sub Account的关系
  • 包装类对象
  • 给第三方使用接口的 URL 签名实现
  • 基于遗传算法的优化问题求解
  • 记一次删除Git记录中的大文件的过程
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 力扣(LeetCode)56
  • 前端性能优化——回流与重绘
  • 前嗅ForeSpider教程:创建模板
  • 说说动画卡顿的解决方案
  • 探索 JS 中的模块化
  • 智能合约Solidity教程-事件和日志(一)
  • Prometheus VS InfluxDB
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • #{} 和 ${}区别
  • #Spring-boot高级
  • (52)只出现一次的数字III
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (八)五种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (二刷)代码随想录第15天|层序遍历 226.翻转二叉树 101.对称二叉树2
  • (分类)KNN算法- 参数调优
  • (附源码)springboot优课在线教学系统 毕业设计 081251
  • (接口封装)
  • (七)Java对象在Hibernate持久化层的状态
  • (十二)Flink Table API
  • (四)鸿鹄云架构一服务注册中心
  • (转)LINQ之路
  • .gitignore文件使用
  • .net 8 发布了,试下微软最近强推的MAUI
  • .Net core 6.0 升8.0
  • .net core Swagger 过滤部分Api