python数据分析之Pandas库(一)

news2024/10/11 2:17:58

Pandas介绍

Pandas有两种常用的数据结构: Series (一维数据)与 DataFrame(二维数据)。
Series 是一种类似于一维数组的对象,能保存不同数据类型。
DataFrame 是一个二维的表格型的数据结构。

一、导入

import pandas as pd

二、Series

1、初始化

使用一位列表初始化Series

# 默认索引下标为数字
s=pd.Series([1,3,5,np.nan,6,7])

# 更改索引下标为指定字母
s1=pd.Series([1,3,5,np.nan,6,7],index=['a','b','c','d','x','y'])

2、索引[数据的行标签]、切片

s=pd.Series([1,3,5,np.nan,6,7])
# 索引
s.index

# 值
s.values

# 索引取值,下标为0的元素值
s[0]

# 切片,左闭右开,步长为2
s[1:5:2]

# 为索引取名
s.index.name='索引'

# 修改索引下标
s.index=list('abcdxy')

# 根据自定义的索引进行切片,非左闭右开
s['a':'c':2]

三、DataFrame

1、初始化

import numpy as np
df1 = pd.DataFrame(np.random.randn(6,4))  # 6行4列,默认行列标签均为数字下标

date=pd.date_range('20230908',periods=6)  # 构造行标签
df = pd.DataFrame(np.random.randn(6,4), index = date, columns = list("ABCD"))  # index指定行标签,columns指定列标签

# 使用字典传入数据
df2 = pd.DataFrame({
'A':1.,
'B':pd.Timestamp("20181001"),
'C':pd.Series(1,index = list(range(4)),dtype = float),
'D':np.array([3]*4, dtype = int),
'E':pd.Categorical(["test","train","test","train"]),
'F':"abc"}) #B:时间戳,E分类类型

2、查看数据

# 查看各列的数据类型
df2.dtypes

# 查看头尾数据
df.head()
df.tail(3)

# 查看行标签
df.index

# 查看列标签
df.columns

# 查看元素值
df.values

四、pandas读取数据即数据操作

在这里插入图片描述

1、读入文件【以豆瓣电影为例】

# 读入excel文件
df=pd.read_excel(r"D:\desk\77\bbb\python\豆瓣电影数据.xlsx",index_col = 0)
# 读入CSV文件  pd.read_csv(r'路径')

2、行操作

访问

# 取第一行
df.iloc[0]
# 取前4行
df.iloc[:4]  #左闭右开

df.loc[:4]  #不是左闭右开

添加一行

dit = {"名字":"复仇者联盟3","投票人数":123456,"类型":"剧情/科幻","产地":"美国","上映时间":"2018-05-04 00:00:00","时长":142,"年代":2018,"评分":np.nan,"首映地点":"美国"}
s = pd.Series(dit)
s.name = 38738
df=df.append(s)  # 覆盖掉原来的数据重新进行赋值 

删除一行

df = df.drop([38738])

3、列操作

访问

# 取列标签
df.columns

# 取指定标签列
df['产地']
# 取多列,指定标签
df['名字','类型']
# 取定标签列的,前5行
df['名字'][:5]

添加一列

# 添加为‘序号’的1列,值为1到len(df)
df['序号']=range(1,len(df)+1)

删除一列

# 删除名为‘序号’的1列
df=df.drop('序号',axis=1)  # axis指定方向:0为行,1为列

通过标签选择数据
df.loc[index,column]

# 选择行标签为1,列标签为‘名字’的元素
df.loc[1,'名字']  

# 选择多行多列
df.loc[[1,3,5,7,9],['名字','评分']]

条件选择

选取产地为美国的所有电影

df[df['产地']=='美国']

选取产地为美国的所有电影,并且评分大于9分的电影

df[(df.产地=='美国')&(df.评分)>9]  # df.标签  等同于 df['标签']

选取产地为美国或中国大陆的所有电影,并且评分大于9分

df[((df.产地 == "美国") | (df.产地 == "中国大陆")) & (df.评分 > 9)]

五、缺失值及异常值处理

方法说明
dropna根据标签中的缺失值进行过滤,删除缺失值
fillna对缺失值进行填充
isnull判断哪些值是缺失值,返回布尔对象
notnullisnull的否定式

1、判断缺失值

df[df['名字'].isnull()]
df[df['名字'].notnull()]

2、填充缺失值

df[df['评分'].isnull()]
df['评分'].fillna(np.mean(df['评分']),inplace=True)  # 使用均值来进行填充,inplace意为直接在原始数据中进行修改

df1=df.fillna('未知电影')  # 将所有空值填充为‘未知电影’
df1[df1['名字'].isnull()  # 填充后所有元素均不空

3、删除缺失值

df.dropna() 参数
how = ‘all’:删除全为空值的行或列
inplace = True: 覆盖之前的数据
axis = 0: 选择行0或列1,默认是行

df2=df.dropna()  # 产生新对象
df.dripna(inplace=True)  # 直接在原对象上操作

4、处理异常值

异常值,即在数据集中存在不合理的值,又称离群点。比如年龄为-1,笔记本电脑重量为1吨等,都属于异常值的范围。

# 投票人数小于0的数或小数均为异常值,可直接删除或修正
df=df[df.投票人数>0]  # 大于0
df=df[df['投票人数']%1==0  # 整数

5、数据保存

数据处理之后,然后将数据重新保存到movie_data.xlsx

df.to_ecxel('movie_data.xlsx')

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

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

相关文章

网络编程(一):服务器模型、Java I/O模型、Reactor事件处理模型、I/O复用

文章目录 一、Socket和TCP/IP协议族的关系二、服务器模型1.C/S模型(Client/Server Model)2.P2P模型(Peer-to-Peer Model) 三、Java的I/O演进1.BIO(阻塞)(1)工作流程(2&am…

MATLAB实现函数拟合

目录 一.理论知识 1.拟合与插值的区别 2.几何意义 3.误差分析 二.操作实现 1.数据准备 2.使用cftool——拟合工具箱 三.函数拟合典例 四.代码扩展 一.理论知识 1.拟合与插值的区别 通俗的说,插值的本质是根据现有离散点的信息创建出更多的离散点&#xf…

HashMap解决哈希冲突

要了解 Hash冲突,那首先我们要先了解 Hash 算法和 Hash 表。 Hash算法 Hash 算法,就是把任意长度的输入,通过散列算法,变成固定长度的输出,这个输出结果是散列值。 Hash表 Hash 表又叫做“散列表”,它是通…

7.Xaml Image控件

1.运行图片 2.运行源码 a.xaml源码 <!--Source="/th.gif" 图像源--><!--Stretch="Fill" 填充模式--><Image x:Name

Qemu 架构 硬件模拟器

Qemu 架构 硬件模拟器 Qemu 是纯软件实现的虚拟化模拟器&#xff0c; 几乎可以模拟任何硬件设备&#xff0c; 我们最熟悉的就是能够模拟一台能够独立运行操作系统的虚拟机&#xff0c; 虚拟机认为自己和硬件打交道&#xff0c; 但其实是和 Qemu 模拟出来的硬件打交道&#xff…

单元测试界的高富帅,Pytest框架 (二) 前后置方法和 fixture 机制

前言 上一篇文章入门篇咱们介绍了pytest的基本使用&#xff0c;这一篇文章专门给大家讲解pytest中关于用例执行的前后置步骤处理,pytest中用例执行的前后置处理既可以通过测试夹具(fixtrue)来实现&#xff0c;也可以通过xunit 风格的前后置方法来实现。接下来我们一起看看如何…

利用procrank和lsof定位出客户软件内存OOM的问题

最近遇到一些事情&#xff0c;觉得挺憋屈的&#xff0c;可是再憋屈总得往前走吧&#xff01;打工人&#xff0c;不好办啊&#xff01;事情是这样的&#xff0c;笔者在芯片原厂负责SDK和行业解决方案输出的&#xff0c;可以理解成整体SDK turnkey方案。但是有些客户多少还要改一…

单例模式(饿汉式单例 VS 懒汉式单例)

所谓的单例模式就是保证某个类在程序中只有一个对象 一、如何控制只产生一个对象&#xff1f; 1.构造方法私有化&#xff08;保证对象的产生个数&#xff09; 创建类的对象&#xff0c;要通过构造方法产生对象 构造方法若是public权限&#xff0c;对于类的外部&#xff0c;可…

企业架构LNMP学习笔记31

负载均衡服务器的高可用备用服务器配置&#xff1a; 负载均衡服务器的配置比单台服务器的配置要高很多。硬件上要上一个台阶。 所有的请求流量都要经过负载均衡服务器&#xff0c;负载均衡服务器压力很大&#xff0c;防止她宕机&#xff0c;导致后端web服务器都不可用&#xf…

ROS2下使用TurtleBot3-->SLAM导航(仿真)RVIZ加载不出机器人模型

一、问题描述 在使用台式机进行仿真时&#xff0c;大部分例程很顺利&#xff0c;但在SLAM导航时&#xff0c;在RVIZ中却一直加载不出机器人模型&#xff0c;点击Navigation2 Goal选择目标点进行导航时&#xff0c;无响应。 启动后在RVIZ2和终端看到一个错误 按照官网的指令试…

探索 Wall-E 的寻路算法

几年前,Yandex 组织了一场名为“机器人快递员”的竞赛,并提供了诱人的奖品:一张参加专业人士封闭式自动驾驶会议的门票。该竞赛类似于一场游戏,参与者的任务是在地图上找到最佳路线并使用机器人快递员优化送货。 当我深入研究这个主题时,我发现尽管路线查找问题已经解决,…

ms17-010(永恒之蓝)漏洞复现

目录 前言 一、了解渗透测试流程 二、使用nmap工具对win7进行扫描 2.1 2.2 2.3 2.4 2.5 三、尝试ms17-010漏洞利用 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 四、结果展示 4.1 4.2 4.3 4.4 4.5 总结 前言 ms17-010&#xff08;永恒之蓝&am…

mysql八股1

参考MySQL八股文连环45问&#xff08;背诵版&#xff09; - 知乎 (zhihu.com) 基础 1.范式 第一范式&#xff1a;强调的是列的原子性 第二范式&#xff1a;要求实体的属性完全依赖于主关键字。所谓完全 依赖是指不能存在仅依赖主关键字一部分的属性。&#xff08;就是主键不…

Linux防火墙(iptables)

一、linux的防火墙组成 linux的防火墙由netfilter和iptables组成。用户空间的iptables制定防火墙规则&#xff0c;内核空间的netfilter实现防火墙功能。 netfilter&#xff08;内核空间&#xff09;位于Linux内核中的包过滤防火墙功能体系&#xff0c;称为Linux防火墙的“内核…

Vulnhub:Kira: CTF靶机

kali&#xff1a;192.168.111.111 靶机&#xff1a;192.168.111.238 信息收集 端口扫描 nmap -A -sC -v -sV -T5 -p- --scripthttp-enum 192.168.111.238访问80端口 点击upload发现是个上传点 点击language发现存在文件包含 上传php图片马再利用文件包含反弹shell http://1…

CIO40: 数字化落地最佳实践(16000字)

1-数字化规划 第一步&#xff1a;数字化规划。CIO要根据企业的发展现况及未来战略方向、根据企业董事长的布局和理念、根据企业各业务板块领导人的格局和理念&#xff0c;做出一份董事长和领导层高度认同的数字化规划&#xff0c;而且需要用PPT进行完整和专业的表达出来&#x…

基于SpringBoot的在线教育平台系统

基于SpringBootVue的线教育平台系统&#xff0c;前后端分离 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringBoot、Vue、Mybaits Plus、ELementUI工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 【主要功能】 角色&#xff1a;管理员、学生、老师 …

When后接什么动词?

1、when doing用法 When从句的主语和主句的主语是同一个或同一些人时&#xff0c;从句的谓语动词为be动词doing形式&#xff0c;可以把从句的主语和be动词省略&#xff0c;即用when doing sth是指当做……事情时&#xff0c; 如&#xff1a; when doing the work,we should b…

(以太网交换机)BCM53575B0KFSBG、BCM56870A0KFSBG、BCM56760B0KFSBG采用BGA封装的集成电路

一、BCM53575B0KFSBG 1G/2.5G/10G/25G TSN 连接交换机 应用 中小企业 2.5G/10G 交换机 使用时间敏感网络&#xff08;TSN&#xff09;的工业以太网/汽车应用 联网 (TSN) 的工业以太网/汽车应用 用于基站、闪存阵列、专业级音频/视频和机箱背板的嵌入式连接交换机 &#xff08;…

自然语言处理NLP:一文了解NLP自然语言处理技术,NLP在生活中的应用,图导加深了解,NLP语料库,NLP开源工具

目录 1.自然语言处理NLP 1.1 NLP中英对照&#xff08;双份&#xff09; 1.2 相关文章 2.NLP语料库 2.1 NLP语料库列举 2.2 相关文章 3.NLP开源工具 3.1 NLP开源工具列举 3.2 相关文章 4.自然语言文本分类模型代码 5.图导NLP 6. NLP在生活中的应用 1.自然语言处理NLP …