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

Pandas -----------------------基础知识(五)

  • 索引和列操作
  • 函数
  • 缺失值

索引和列操作

# 1 加载数据
# 1.1 从链家租房数据集中获取天通苑租房区域的所有数据存储在df2中
# 1.2 从df2中获取价格列存储在df2_price对象
import pandas as pd
df = pd.read_csv('/root/pandas_code_ling/data/b_LJdata.csv')
df2 = df[df['区域']== '天通苑租房']
df2_price = df2['价格']
df2_price

# 2 获取索引
# 2.1 通过 df2.index和 s_price.index 可以查看数据的索引
# 2.2 使用索引下标df2.index[0]和s.index[0]可以获取具体的某一个索引值

df2_price.indexdf2.indexdf2.index[2]print(df2_price.index[2])#  78  第三个

# 3 查看列名
# 3.1 查看 DataFrame 中所有列名
df.columns
# Index(['区域', '地址', '户型', '面积', '价格', '朝向', '更新时间', '看房人数'], dtype='object')
# 3.2 查看 DataFrame 中 特定列名对应的下标df.columns.get_loc('价格')  
#  4
# 目标: 读取数据时指定索引列
# 1 读取数据 使用 区域列 作为索引
df_3 = pd.read_csv('/root/pandas_code_ling/data/b_LJdata.csv',index_col=0)
df_3

# 目标: 指定某列为索引
# 1 使用 set_index 指定 区域 列为索引列, 影响原始数据
df_4 = df.set_index('区域',inplace=False)
df

# 目标: 重置索引
# 0 准备数据
copy_df = df2.copy()
# print(copy_df.head())#  重置索引 影响原始数据, 去掉 index 列
copy_df.reset_index(drop=True, inplace=True)
copy_df

# 0 拷贝s_price的前5条数据 
new_price = df2_price.head().copy()
print(new_price)# 1 重置索引
new_price = new_price.reset_index(inplace=False, drop=True)
print(new_price)# 2 修改索引
new_price.index=['a','b','c','d','e']
print(new_price)

# 目标: 赋值修改列名
new_df = df[['区域','价格']]
new_df = new_df.head().copy()
new_dfnew_df.columns = ['列名1','列名2']
new_df

# 目标: 赋值修改列名和索引# 1 使用 rename 修改列名
# 2 使用 rename 修改索引
new_df.rename(columns={'区域':'新区域','价格':'新价格'},index={0:'a', 2:'b', 4:'c'},inplace=True
)
new_df

函数

原始数据

 # 根据指定列的值由大到小排列,返回n行数据
df2.nlargest(5,'价格')

df2.nsmallest(3,'价格')

# 按价格列的数值由大到小进行排序  不修改原始数据
print(df2.sort_values(['价格'], ascending=False))

# 先对看房人数列由小到大排序, 再对价格列由大到小排序
print(df2.sort_values(['价格', '看房人数'], ascending=[True, False]))

相关性

df.corr()

标准偏差

df2.std()

分位数

# 二分位数  中位数
df2.quantile()  

# 四分位数  (计算:以看房人数四分之一分位为例 (10-1)*0.25=2.25  2.25+1=3.25  第三位是29  29+(30-29)*0.25=29.25)
df2.quantile([0.25, 0.5, 0.75])

缺失值

  • Pandas中的NaN值来自NumPy库,NumPy中缺失值有几种表示形式:NaN,NAN,nan,他们都一样

  • 缺失值和其它类型的数据不同,它毫无意义,NaN不等于0,也不等于空字符串

加载数据
df = pd.read_csv('/root/pandas_code_ling/data/c_city_day.csv')
df.head()

df = pd.read_csv('/root/pandas_code_ling/data/c_city_day.csv',keep_default_na=False)
df.head()

df = pd.read_csv('/root/pandas_code_ling/data/c_city_day.csv',na_values='Ahmedabad')
df.head()

df.info()

# df.head().isna()
# df.head().isnull()
# df.head().notnull()
df.head().notna()

df = pd.read_csv('/root/pandas_code_ling/data/c_city_day.csv')
# 随机获取10条数据
df2 = df.sample(n=10, random_state=5)
df2

# 删除含有缺失值的行数据
df2.dropna()# # 删除含有缺失值的列
df2.dropna(axis=1)

# # 删除指定列中含有缺失值的行数据
df2.dropna(how='any', subset=['PM2.5', 'Xylene', 'AQI'])

# # 删除指定列中都含有缺失值的行数据
df2.dropna(how='all', subset=['PM2.5', 'Xylene', 'AQI'])

# # 删除含有缺失值的行数据, 剩余非空值个数大于等于12的行数据保留
df2.dropna(thresh=12)

df.head().isnull().sum()

填充缺失值 

# 目标: 用平均值填充PM2.5的缺失值
# 1 加载数据
df = pd.read_csv("./data/c_city_day.csv")
# 2 验证缺失值df.info() # 总: 29531  PM2.5: 24933

# 3 求平均值
pm25_mean = df['PM2.5'].mean()
print(pm25_mean) # 67.45057794890272
# 4 填充平均值
df['PM2.5'].fillna(pm25_mean, inplace=True)

# 5 验证
df.info() # 总: 29531  PM2.5: 29531
print(df['PM2.5'].mean())

# 使用前后值填充
# 加载数据
df = pd.read_csv('./data/c_city_day.csv')
s1 = df['Xylene'][54:64]
print(s1)
print('---------------------------')
print(s1.fillna(method='ffill'))

# 加载数据
df = pd.read_csv('./data/c_city_day.csv')
s1 = df['Xylene'][54:64]
print(s1)
print('---------------------------')
print(s1.fillna(method='bfill'))

# 使用线性填充
df = pd.read_csv('./data/c_city_day.csv')
s1 = df['Xylene'][54:64]
print(s1)
print('---------------------------')
print(s1.interpolate(limit_direction='both'))

相关文章:

Pandas -----------------------基础知识(五)

索引和列操作函数缺失值 索引和列操作 # 1 加载数据 # 1.1 从链家租房数据集中获取天通苑租房区域的所有数据存储在df2中 # 1.2 从df2中获取价格列存储在df2_price对象 import pandas as pd df pd.read_csv(/root/pandas_code_ling/data/b_LJdata.csv) df2 df[df[区域] 天通苑…...

RabbitMQ 高级特性——重试机制

文章目录 前言重试机制配置文件设置生命交换机、队列和绑定关系生产者发送消息消费消息 前言 前面我们学习了 RabbitMQ 保证消息传递可靠性的机制——消息确认、持久化和发送发确认,那么对于消息确认和发送方确认,如果接收方没有收到消息,那…...

每天一道面试题(20):锁的发生原因和避免措施

死锁的发生原因和避免措施 一、概述 在多线程编程中,死锁是一个常见的问题。理解死锁的成因和避免策略是提升程序稳定性和性能的重要能力。 二、普通人 vs 高手的回答 普通人回答: “临场发挥…” 高手回答: “死锁是指两个或多个线程在执…...

2024淘宝双11活动,收下这份必买好物推荐清单

双11如何真正值得购买的好物呢?为了帮助大家把握住这次难得的购物良机,我们特别推出了这份“2024淘宝双11必买好物推荐清单”。这份清单涵盖数码电子、家居生活、个护健康等多个领域的优质产品。无论你是科技爱好者,还是注重生活品质的消费者…...

vue-cli,element-plus,axios,proxy

一、vue-cli vue-cli俗称vue脚手架,是vue官方提供的快速生成vue 工程化项目的工具。 1.官网:https://cn.vuejs.org/ 中文官网: https://cli.vuejs.org/zh/ 特点:基于webpack,功能丰富且易于扩展,支持创建vue2和vu…...

《Zeotero的学习》

学习视频链接 Zeotera的安装 官网点击download,选择合适的版本进行下载,并安装插件。 下载完成之后,点击安装包,一路默认就可以。如果不想下载在C盘,可以在步骤中选择自定义路径。 Zeotero的注册 官网进行注册&am…...

大数据复习知识点1

1、HDFS和MapReduce的起源:HDFS起源于Google的GFS论文,它是为了解决大规模数据集的存储问题而设计的。而MapReduce则是Google为了解决大规模数据处理问题而提出的一种并行计算模型。 2、YARN的作用:YARN是Hadoop的资源管理器,它负…...

9.26 Buu俩题解

[CISCN2019 华东北赛区]Web2 看wp写完之后写的 知识点 存储型XSS与过滤绕过sql注入 题解 好几个页面,存在登录框可以注册,存在管理员页面(admin.php) ->既然存在管理员页面,且直接访问admin.php提示我们 说明存在身份验证&#xff0…...

Mitsuba 渲染基础

Mitsuba 渲染基础 0. Abstract1. 安装 Mitsuba21.1 下载 Mitsuba2 源码1.2 选择后端 (variants)1.3 编译 2. [Mitsuba2PointCloudRenderer](https://github.com/tolgabirdal/Mitsuba2PointCloudRenderer)2.1 Mitsuba2 渲染 XML2.2 Scene 场景的 XML 文件格式2.2.1 chair.npy to…...

深入理解 WebSocket:实时通信的利器

深入理解 WebSocket:实时通信的利器 1. 什么是 WebSocket? WebSocket 是一种网络通信协议,它允许服务器和客户端之间建立持久的双向通信通道,适用于高频率、低延迟的数据交换场景。在传统的 HTTP 通信中,每次请求都需…...

OpenEuler配置本地yum源

0x00 服务器版本 将本地镜像传输至服务器 操作步骤如下 # 创建一个目录用于挂载光盘映像 mkdir /media/cdrom/# 将光盘映像挂载到指定目录 mount /kvm/openeuler.iso /media/cdrom/#进入Yum仓库配置目录 cd /etc/yum.repos.d/# 备份原有的 openEuler.repo 文件 mv openEuler.…...

论文不同写作风格下的ChatGPT提示词分享

学境思源,一键生成论文初稿: AcademicIdeas - 学境思源AI论文写作 在学术论文写作中,不同的写作风格能显著影响文章的表达效果与读者的理解。无论是描述性、分析性、论证性,还是批判性写作风格,合理选择和运用恰当的写…...

单点登录(SSO)基础

单点登录(SSO, Single Sign-On) 是一种身份认证机制,允许用户在多个独立的应用系统中只进行一次登录操作,即可访问所有授权的应用或服务,而无需每次切换应用时都进行登录。SSO 提高了用户体验的便捷性,同时…...

设置VsCode搜索时排除文件,文件列表中隐藏文件

按照《VsCode gdb gdbserver远程调试C程序》中介绍的方法,配置好VsCode后,打开一个C/C工程,发现左侧的面板会显示编译时生成的中间文件(比如.d和.o文件)。我们可以通过设置隐藏掉一些我们不需要打开的文件以简洁面板…...

急!现在转大模型还来得及吗?零基础入门到精通,收藏这一篇就够了

大模型的出现,让行内和行外大多数人都感到非常焦虑。 行外很多人想了解却感到无从下手,行内很多人苦于没有硬件条件无法尝试。想转大模型方向,相关的招聘虽然层出不穷,但一般都要求有大模型经验。而更多的人,则一直处…...

使用 lstm + crf 实现NER

条件随机场CRF 前言 CRF是给定一组输入随机变量条件下另一组输出随机变量的条件概率分布的模型。特点:假设输出随机变量构成马尔卡夫随机场。CRF可以用于不同的预测问题。但是主要讨论线性链条件随机场,这时问题变成了由输入序列对输出序列的判别模型&…...

【牛掰】这款RPA多平台引流获客软件已正式上线,助您日引流1000+

哈喽大家好我是年哥,自从上次与大家团购了那款基于autojs开发的RPA引流获客的源码,经过本缝合怪不断地修修补补,终于将它变成自己的了,还为它起了个魔幻的名字:获客宝RPA。尽管部分功能还有点瑕疵,但是不管…...

Python的包管理工具pip安装

Python的包管理工具pip安装 一、安装步骤1.检查 pip是否已安装2.安装 pip方法一:通过 ​ensurepip​ 模块安装(推荐)方法二:通过 ​get-pip.py​ 脚本安装(经常应为网络域名问题连接不上) 3.验证pip安装4.创建别名5.更新pip 二、常…...

《AIGC 时代程序员的应对之策》

在 AIGC 大语言模型不断涌现、AI 辅助编程工具日益普及的当下,程序员的工作方式确实面临着深刻变革。对于程序员来说,如何应对这一趋势成为了至关重要的问题。 一方面,有人担忧 AI 可能取代部分编程工作。不可否认,随着技术的发展…...

51单片机系列-串口(UART)通信技术

🌈个人主页: 羽晨同学 💫个人格言:“成为自己未来的主人~” 并行通信和串行通信 并行方式 并行方式:数据的各位用多条数据线同时发送或者同时接收 并行通信特点:传送速度快,但因需要多根传输线&#xf…...

K8S认证|CKS题库+答案| 11. AppArmor

目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)

文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...

前端倒计时误差!

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

【算法训练营Day07】字符串part1

文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接&#xff1a;344. 反转字符串 双指针法&#xff0c;两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...

HBuilderX安装(uni-app和小程序开发)

下载HBuilderX 访问官方网站&#xff1a;https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本&#xff1a; Windows版&#xff08;推荐下载标准版&#xff09; Windows系统安装步骤 运行安装程序&#xff1a; 双击下载的.exe安装文件 如果出现安全提示&…...

聊一聊接口测试的意义有哪些?

目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开&#xff0c;首…...

【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)

1.获取 authorizationCode&#xff1a; 2.利用 authorizationCode 获取 accessToken&#xff1a;文档中心 3.获取手机&#xff1a;文档中心 4.获取昵称头像&#xff1a;文档中心 首先创建 request 若要获取手机号&#xff0c;scope必填 phone&#xff0c;permissions 必填 …...

Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档&#xff09;&#xff0c;如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下&#xff0c;风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...

08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险

C#入门系列【类的基本概念】&#xff1a;开启编程世界的奇妙冒险 嘿&#xff0c;各位编程小白探险家&#xff01;欢迎来到 C# 的奇幻大陆&#xff01;今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类&#xff01;别害怕&#xff0c;跟着我&#xff0c;保准让你轻松搞…...

pycharm 设置环境出错

pycharm 设置环境出错 pycharm 新建项目&#xff0c;设置虚拟环境&#xff0c;出错 pycharm 出错 Cannot open Local Failed to start [powershell.exe, -NoExit, -ExecutionPolicy, Bypass, -File, C:\Program Files\JetBrains\PyCharm 2024.1.3\plugins\terminal\shell-int…...