pandas基础操作2

数据读取

我们想要使用 Pandas 来分析数据,那么首先需要读取数据。大多数情况下,数据都来源于外部的数据文件或者数据库。Pandas 提供了一系列的方法来读取外部数据,非常全面。下面,我们以最常用的 CSV 数据文件为例进行介绍。

读取数据 CSV 文件的方法是 pandas.read_csv(),你可以直接传入一个相对路径,或者是网络 URL

df = pd.read_csv("path/name.csv")
df
df.head()  # 默认显示前 5 条
df.tail(7)  # 指定显示后 7 条
df.describe() #escribe() 相当于对数据集进行概览,会输出该数据集每一列数据的计数、最大值、最小值等。
df.values #Pandas 基于 NumPy 开发,所以任何时候你都可以通过 .values 将 DataFrame 转换为 NumPy 数组。
df.columns  # 查看列名 结果:Index(['Zip Code', 'Total Population', 'Median Age', 'Total Males','Total Females', 'Total Households', 'Average Household Size'],dtype='object')
df.index  # 查看索引 结果:RangeIndex(start=0, stop=319, step=1)
df.shape  # 查看行列大小

由于 CSV 存储时是一个二维的表格,那么 Pandas 会自动将其读取为 DataFrame 类型。

pd.read_ 前缀开始的方法还可以读取各式各样的数据文件,且支持连接数据库。这里,我们不再依次赘述,你可以阅读 官方文档相应章节 熟悉这些方法以及搞清楚这些方法包含的参数。

通过上面的内容,我们已经知道一个 DataFrame 结构大致由 3 部分组成,它们分别是列名称、索引和数据。

img

df = pd.DataFrame([{'one': 1, 'two': 4},{'one': 2, 'two': 5},{'one': 3, 'two': 6},{'777': 3, '888': 6}])
df
onetwo777888
01.04.0NaNNaN
12.05.0NaNNaN
23.06.0NaNNaN
3NaNNaN3.06.0

这个是输出结果,我们可以看到,相同的键就会合并,会在一列上面,然后根据索引位置摆放,不同的键就会单独做一列,然后更具索引位置摆放数据,有些地方没有数据,就是NaN,
一定要自己操作体验一下
在数据处理和分析中,NaN 是一个常见的术语,代表 “Not a Number”。它是一个特殊的浮点值,用于表示未定义或不可表示的值。在 Pandas 中,NaN 通常用来表示缺失或空缺的数据。

以下是关于 NaN 的几个要点:

  1. 数据缺失的表示:在 Pandas 的 DataFrameSeries 中,NaN 用于表示缺失的或未知的数据。
  2. 数学运算中的行为NaN 与任何数字进行数学运算的结果都是 NaN,这是为了避免给出错误的计算结果。
  3. 数据清洗:在数据分析过程中,经常需要处理 NaN 值。常用的方法包括删除含有 NaN 的行或列、用特定值填充 NaN(例如平均值、中位数等),或使用插值方法估算 NaN 的值。
  4. 检测和过滤:Pandas 提供了函数如 isna()notna() 来检测数据中的 NaN 值,以便进行过滤或其他处理。

数据选择

数据预处理过程中,我们往往会对数据集进行切分,只将需要的某些行、列,或者数据块保留下来,输出到下一个流程中去。这也就是所谓的数据选择,或者数据索引。

由于 Pandas 的数据结构中存在索引、标签,所以我们可以通过多轴索引完成对数据的选择。

基于索引数字选择

当我们新建一个 DataFrame 之后,如果未自己指定行索引或者列对应的标签,那么 Pandas 会默认从 0 开始以数字的形式作为行索引,并以数据集的第一行作为列对应的标签。其实,这里的「列」也有数字索引,默认也是从 0 开始,只是未显示出来。

所以,我们首先可以基于数字索引对数据集进行选择。这里用到的 Pandas 中的 .iloc 方法。该方法可以接受的类型有:

  1. 整数。例如:5
  2. 整数构成的列表或数组。例如:[1, 2, 3]
  3. 布尔数组。
  4. 可返回索引值的函数或参数。

下面,我们使用上方的示例数据进行演示。

首先,我们可以选择前 3 行数据。这和 Python 或者 NumPy 里面的切片很相似。

df.iloc[:3] #第一到第三行
df.iloc[5] #第五行
df.iloc[[1, 3, 5]] #单独选择需要的行

选择列是不是很简单几乎和切片一模一样

选择行学会以后,选择列就应该能想到怎么办了。例如,我们要选择第 2-4 列。

df.iloc[:, 1:4] #前面是不是全部的行都要呀,之后就是2-4列的切片

基于标签名称选择

除了根据数字索引选择,还可以直接根据标签对应的名称选择。这里用到的方法和上面的 iloc 很相似,少了个 idf.loc[]

df.loc[] 可以接受的类型有:

  1. 单个标签。例如:2'a',这里的 2 指的是标签而不是索引位置。
  2. 列表或数组包含的标签。例如:['A', 'B', 'C']
  3. 切片对象。例如:'A':'E',注意这里和上面切片的不同之处,首尾都包含在内
  4. 布尔数组。
  5. 可返回标签的函数或参数。
df.loc[0:2] #0,1,2行包含首尾
Zip CodeTotal PopulationMedian AgeTotal MalesTotal FemalesTotal HouseholdsAverage Household Size
091371173.50111.00
1900015711026.62846828642129714.40
2900025122325.52487626347117314.36

再选择 1,3,5 行:

df.loc[[0, 2, 4]]
Zip CodeTotal PopulationMedian AgeTotal MalesTotal FemalesTotal HouseholdsAverage Household Size
091371173.50111.00
2900025122325.52487626347117314.36
4900046218034.83130230878225472.73

然后,选择 2-4 列,是列,所以需要输入列名:

df.loc[:, 'Total Population':'Total Males']
Total PopulationMedian AgeTotal Males
0173.50
15711026.628468
25122325.524876
36626626.332631
46218034.831302
3143815828.418711
315213843.31121
3161891032.49491
31738844.5263
318728530.93653

最后,选择 1,3 行和 Median Age 后面的列:

df.loc[[0, 2], 'Median Age':]
Median AgeTotal MalesTotal FemalesTotal HouseholdsAverage Household Size
073.50111.00
225.52487626347117314.36

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/192890.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【LeetCode:1423. 可获得的最大点数 | 滑动窗口】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

微前端实战:打造高效、灵活的前端应用架构

文章目录 一、微前端简介二、微前端的优势1. 高度模块化2. 独立部署3. 易于扩展4. 技术栈无关5. 独立升级 三、微前端的原理四、微前端案例思路《微前端实战》编辑推荐内容简介作者简介目录前言/序言 随着互联网行业的快速发展,前端应用的规模和复杂度也在不断增加。…

windows11 调整鼠标灵敏度方法

首先 我们打开电脑设置 或者在 此电脑/此计算机/我的电脑 右击选择属性 然后 有的电脑 左侧菜单中 直接就有 设备 然后在设备中直接就可以找到 鼠标 选项 调整光标速度即可 如果操作系统和我的一样 可以直接搜索鼠标 然后 选择 鼠标设置 然后 调整上面的鼠标指针速度即可

论文解读--Robust lane detection and tracking with Ransac and Kalman filter

使用随机采样一致性和卡尔曼滤波的鲁棒的车道线跟踪 摘要 在之前的一篇论文中,我们描述了一种使用霍夫变换和迭代匹配滤波器的简单的车道检测方法[1]。本文扩展了这项工作,通过结合逆透视映射来创建道路的鸟瞰视图,应用随机样本共识来帮助消…

网络编程之套接字

端口 && IP 在学习套接字编程之前,我们必须了解一下前缀知识。首先是IP和端口的作用。 在这之前,我们要明白一件事。那就是把数据从一台主机发送到另一台主机,是目的吗???当然不是!&a…

qt-C++笔记之识别点击鼠标右键、点击位置以及Qt坐标系详解

qt-C笔记之识别点击鼠标右键、点击位置以及Qt坐标系详解 文章目录 qt-C笔记之识别点击鼠标右键、点击位置以及Qt坐标系详解1.示例运行2.event->pos();详解3.event->pos()的坐标系原点4.Qt中的坐标系详解5.QMainWindow::mousePressEvent(event);详解 1.示例运行 截图时鼠…

【SpringMVC】Spring Web MVC入门(一)

文章目录 前言什么是Spring Web MVC?什么是MVC什么是Spring MVC? Spring Boot 和 Spring MVC 的区别什么是Spring Boot?关系和区别 Spring MVC 学习注解介绍1. SpringBootApplication2. RestController3. RequestMapping3.1 RequestMapping 使…

css所有属性介绍

文章目录 1️⃣ CSS属性介绍1.1 CSS3 动画属性(Animation)1.2 CSS 背景属性(Background)1.3 CSS 边框属性(Border 和 Outline)1.4 Box 属性1.5 Color 属性1.6 Content for Paged Media 属性1.7 CSS 尺寸属性…

CyclicBarrier实战应用——批量数据多线程协调异步处理(主线程执行事务回滚)

😊 作者: 一恍过去 💖 主页: https://blog.csdn.net/zhuocailing3390 🎊 社区: Java技术栈交流 🎉 主题: CCyclicBarrier实战应用——批量数据多线程协调异步处理(主线程执行事务…

Linux学习笔记之七(shell脚本的基本语法)

Shell 1、Shell脚本2、常用运算符2、特殊语法4、关于变量的一些命令4.1、echo4.2、export4.3、read4.4、declare/typeset4.5、local4.6、unset 5、基本逻辑语法5.1、if判断5.2、for循环5.3、while循环5.4、case语句 6、函数定义7、多脚本链接 1、Shell脚本 学习shell脚本开发之…

C-语言每日刷题

目录 [蓝桥杯 2015 省 A] 饮料换购 题目描述 输入格式 输出格式 输入输出样例 # [蓝桥杯 2023 省 A] 平方差 题目描述 输入格式 输出格式 输入输出样例 说明/提示 【样例说明】 [NOIP2001 普及组] 数的计算 题目描述 输入格式 输出格式 输入输出样例 说明/提示 样例 1 解释 数据…

RK3568平台开发系列讲解(Linux系统篇)netlink 监听广播信息

** 🚀返回专栏总目录 文章目录 一、什么是netlink 机制二、netlink 的使用2.1、创建 socket2.2、绑定套接字2.3、接收数据沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将介绍如何通过 netlink 监听广播信息。 一、什么是netlink 机制 Netlink 是 Linux 内核中…

企业计算机服务器locked1勒索病毒数据恢复,locked1勒索病毒解密流程

随着计算机技术的不断发展,越来越多的企业走向数字化办公时代,计算机技术为企业的生产运营提供了有利条件,但也为企业带来了网络安全威胁。在本月,云天数据恢复中心陆续接到很多企业的求助,企业的速达办公软件遭到了lo…

js中setinterval怎么用?怎么才能让setinterval停下来?

setinterval()是定时调用的函数,可按照指定的周期(以毫秒计)来调用函数或计算表达式。 setinterval()的作用是在播放动画的时,每隔一定时间就调用函数,方法或对象。 setInterval() 方法会不停地调用函数,…

Leetcode刷题详解——乘积最大子数组

1. 题目链接:152. 乘积最大子数组 2. 题目描述: 给你一个整数数组 nums ,请你找出数组中乘积最大的非空连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。 测试用例的答案是一个 32-位…

【大学英语视听说上】Mid-term Test 2

Section A 【短篇新闻1】 You probably think college students are experts at sleeping, but parties, preparations for tests, personal problems and general stress can rack a students sleep habits, which can be bad for the body and the mind. Texas Tech Univer…

JavaWeb(一)

一、Javaweb介绍 Web:全球广域网,也称为万维网(www),能够通过浏览器访问的网站。 JavaWeb:使用Java技术进行web互联网开发。 总结: 1、JavaWeb就是使用Java技术进行web互联网开发 2、一个web项目包含三个部分,分别…

分页助手入门以及小bug,报sql语法错误

导入坐标 5版本以上的分页助手 可以不用手动指定数据库语言&#xff0c;它会自动识别 <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.3.2</version> </dependency&g…

(C语言)逆序输出字符串

#include<stdio.h> #include<string.h> int main() {int i;char s[100];scanf("%s",&s);int count strlen(s);for(int i count -1;i > 0; i --)printf("%c",s[i]);return 0;} 代码运行截图&#xff1a; 注&#xff1a;侵权可删

五子棋AI算法自动测试方法

先前发了几篇五子棋游戏程序设计的博文&#xff0c;设计了游戏程序&#xff0c;也设计了AI智能奕棋的算法&#xff0c;运行程序检测算法的可行性&#xff0c;完成人机模式游戏功能的设置。 本文主要介绍自动测试算法的方法。 AI智能奕棋的算法testAIq( )&#xff0c;主要是检测…