【python学习第12节 pandas】

文章目录

  • 一,pandas
    • 1.1 pd.Series
    • 1.2 pd.date_range
    • 1.3 pd_DataFrame
    • 1.4浏览数据
    • 1.5布尔索引
    • 1.6设置值
    • 1.7操作
    • 1.8合并
      • 1.8.1concat()函数
      • 1.8.2 merge()函数

一,pandas

1.1 pd.Series

pd.Series 是 Pandas 库中的一个数据结构,用于表示一维标签化的数据。它类似于 Python 中的列表或一维数组,但具有更丰富的功能和灵活性。

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
s = pd.Series([1,2,3,np.nan,7,8])	
s
0    1.0
1    2.0
2    3.0
3    NaN	#np.nan是一个占位符
4    7.0
5    8.0
dtype: float64

1.2 pd.date_range

pd.date_range 是 Pandas 库中用于生成日期范围的函数。它可以方便地创建一系列连续的日期或时间戳,用于时间序列分析和日期处理。

默认以天为频率所以freq=‘D’

dates = pd.date_range('20231002',periods=7)
dates
DatetimeIndex(['2023-10-02', '2023-10-03', '2023-10-04', '2023-10-05','2023-10-06', '2023-10-07', '2023-10-08'],dtype='datetime64[ns]', freq='D')          
dates[1]
Timestamp('2023-10-03 00:00:00', freq='D')

1.3 pd_DataFrame

pd.DataFrame 是 Pandas 库中用于创建和操作二维数据结构的主要对象之一。DataFrame 是一个表格型的数据结构,类似于电子表格或关系型数据库中的表,可以存储和处理具有行和列的数据
data提供数据,index是行索引,columns是列索引

df = pd.DataFrame(data=np.random.randn(7,4),index=dates,columns=list('ABCD'))
df

在这里插入图片描述
通过字典来创建

data = {'Name': ['Alice', 'Bob', 'Charlie'],'Age': [25, 30, 35],'City': ['New York', 'London', 'Paris']}df = pd.DataFrame(data)
df

在这里插入图片描述

1.4浏览数据

df = pd.DataFrame(data=np.random.randn(7,4),index=dates,columns=list('ABCD'))
df.head(3) 		查看前三行的数据
df.tail(3) 		查看后三行的数据
df.index		查看行索引
df.columns		查看列索引
df.values		查看表格的值
df.describe()	查看表格的摘要
df.sort_index(axis=1, ascending=False)
axis=0是行索引1是列索引,ascending=False是降序,True是升序
df.sort_values(by='B', ascending=False)
by='B'是按照B列来排序,ascending=False是降序,True是升序
df['A']				选择单列产生Series,等效于df.A
df[0:3]				通过切片选择行
df.loc[dates[0]] == df.loc['20231002']	行索引是dates,输出的是第一行的值
df.loc[[dates[0],dates[1]],['A','B']]	可以选择多行多列的数据来查看

在这里插入图片描述

df.iloc[n]			直接获取第n行
df.iloc[3:5,2:4]	直接获取3-4行,2-3列的值

1.5布尔索引

df[df.A>0]			会把A列中大于0的行全部输出

在这里插入图片描述

df[(df.A>0) & (df.B<0)]		把A列大于0同时B列小于0的行输出
df.isin() 			检查 DataFrame 中的元素是否属于指定的值或列表。

1.6设置值

df.at[dates[0],'A'] = 0		设置指定的元素的值
df.iat[0,1] = 0				设置指定的行列的值
df.reindex(index = dates[0:8],columns=list(df.columns)+['E'])
新加一列E列
df.loc[[dates[0],dates[1]],'E'] = 1		给E列的前两行添加元素

在这里插入图片描述

df.dropna(how='any')			删除任何含有Nan的行和列
df.fillna(value = n)			返回一个新对象,把所有的Nan填充成5
pd.isnull(df)					判断每个元素或者行或列是不是Nan

1.7操作

df.mean(axis=n)		求取平均值,n=0是列,n=1是行默认是0
df.apply(function)	用于对表格的行或列应用一个函数(可以是自己定义的),以生成新的数据。
df.

1.8合并

1.8.1concat()函数

pd.concat(objs, axis=0, join='outer', ignore_index=False)

说明

objs 是要连接的 DataFrame 对象的序列,可以是列表、元组或字典。
axis 是指定连接轴的参数,axis=0 表示沿行方向连接,axis=1 表示沿列方向连接,默认为 axis=0。
join 是指定连接方式的参数,join=‘outer’ 表示取并集,join=‘inner’ 表示取交集,默认为 join=‘outer’。
ignore_index 是一个布尔值,表示是否忽略原始索引并生成新的索引,默认为 ignore_index=False。

示例

pieces = [df[:3],df[3:7],df[7:]]
pieces

在这里插入图片描述

pd.concat(pieces)

在这里插入图片描述

1.8.2 merge()函数

pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=True)

left 和 right 是要合并的两个 DataFrame 对象。
how 是合并方式,可以是 ‘inner’(内连接)、‘outer’(外连接)、‘left’(左连接)或 ‘right’(右连接)。默认为 ‘inner’。
on 是用于连接的列名。如果两个 DataFrame 的列名相同,则可以使用 on 参数指定列名进行连接。
left_on 和 right_on 是用于连接的左右 DataFrame 的列名。可以使用这两个参数指定各自 DataFrame 中的列名进行连接。
left_index 和 right_index 是一个布尔值,表示是否使用左右 DataFrame 的索引进行连接。
sort 是一个布尔值,表示是否根据连接键进行排序。

df1 = pd.DataFrame({'A': [1, 2],'B': [3, 4]})df2 = pd.DataFrame({'A': [2, 3],'C': [5, 6]})# 使用列进行内连接
merged_df = pd.merge(df1, df2, on='A', how='inner')
print(merged_df)#执行结果A  B  C
0  2  4  5

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

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

相关文章

爆文采集器-热点爆文章采集工具

当信息在互联网上迅速传播&#xff0c;新闻迅速变化&#xff0c;自媒体创作者和信息追踪者们都希望能够捕捉到瞬息万变的热点话题&#xff0c;以吸引更多的关注和流量。爆文采集器成为了一项关键的工具&#xff0c;有助于他们在信息的海洋中找到并分享最新、最热门的内容。 热点…

AOP:分页参数统一校验

需求说明 为了保证系统的安全性&#xff0c;需要对所有的 查询列表 接口&#xff0c;添加分页参数&#xff0c;并对分页参数进行校验&#xff0c; &#xff0c;保证参数的合法性。 比如&#xff0c; pageSize&#xff08;每页显示条数&#xff09;&#xff0c;如果不做校验&a…

SpringCloud Alibaba - 基于 FeignClient 整合 Sentinel,实现“线程隔离”和“熔断降级”

目录 一、FeignClient 整合 Sentinel 1.1、整合原因 1.2、实现步骤 1.2.1、修改 OrderService 中的 application.yml 文件 1.2.2、给 FeignClient 编写失败后的降级逻辑 二、线程隔离 2.1、线程隔离的两种方式 2.1.1、线程池隔离 2.1.2、信号量隔离&#xff08;Sentin…

国庆10.01

TCPselect 代码 服务器 #include<myhead.h> #include<sqlite3.h> #define PORT 6666 //端口号 #define IP "192.168.0.104" //IP地址//键盘事件 int jp(fd_set tempfds,int maxfd) {char buf[128] ""; //用来接收数据char buf1[128] …

电流流过电阻时会减小吗?

我相信很多人刚接触电路时都会有这个想法&#xff1a;由于电阻会抵抗或阻碍电荷的流动&#xff0c;假如现在电流往一个方向流动&#xff0c;且电路中只有一个电阻器&#xff0c;那么从电流流出的地方到刚接触电阻中间应该有有高电流&#xff0c;从电阻刚流出到最后应该有低电流…

使用WPS自动化转换办公文档: 将Word, PowerPoint和Excel文件转换为PDF

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

Ubuntu配置深度学习环境(TensorFlow和PyTorch)

文章目录 一、CUDA安装1.1 安装显卡驱动1.2 CUDA安装1.3 安装cuDNN 二、Anaconda安装三、安装TensorFlow和pyTorch3.1 安装pyTorch3.2 安装TensorFlow2 四、安装pyCharm4.1 pyCharm的安装4.2 关联anaconda的Python解释器 五、VScode配置anaconda的Python虚拟环境 前言&#xff…

Java下正面解除警告Unchecked cast: ‘java.lang.Object‘ to ‘java.util.ArrayList‘

就是我在反序列化时&#xff0c;遇到这样一个警告&#xff1a; Unchecked cast: java.lang.Object to java.util.ArrayList<com.work1.Student>然后我去网上查&#xff0c;有些人说用SuppressWarnings(“unchecked”)去忽略警告&#xff0c;但是我觉得作为一名合格的程序…

AWS-Lambda之导入自定义包-pip包

参考文档&#xff1a; https://repost.aws/zh-Hans/knowledge-center/lambda-import-module-error-python https://blog.csdn.net/fxtxz2/article/details/112035627 简单来说,以 " alibabacloud_dyvmsapi20170525 " 包为例 ## 创建临时目录 mkdir /tmp cd ./tmp …

深入探讨 Presto 中的缓存

【squids.cn】 全网zui低价RDS&#xff0c;免费的迁移工具DBMotion、数据库备份工具DBTwin、SQL开发工具等 Presto是一种流行的开源分布式SQL引擎&#xff0c;使组织能够在多个数据源上大规模运行交互式分析查询。缓存是一种典型的提高 Presto 查询性能的优化技术。它为 Prest…

循环语句

章节目录&#xff1a; 一、while 循环1.1 句式与基本使用1.2 while...else1.3 单行语句 二、for 循环2.1 句式与基本使用2.2 for...else2.3 range() 函数 三、退出循环3.1 break3.2 continue 四、pass 语句五、结束语 一、while 循环 1.1 句式与基本使用 句式&#xff1a; w…

postgresql-管理表空间

postgresql-管理表空间 基本概念创建表空间用户授权移动表空间 修改表空间移动表空间位置 删除表空间 基本概念 在 PostgreSQL 中&#xff0c;表空间&#xff08;tablespace&#xff09;表示数据文件的存放目录&#xff0c;这些数据文件代表了数 据库的对象&#xff0c;例如表…

buuctf-[RoarCTF 2019]Easy Java

第一次遇到java类的题目 打开环境&#xff0c;很像sql 点击help 以为是文件包含&#xff0c;&#xff0c;但是不对 这里需要了解JAVA WEB目录结构 WEB-INF&#xff1a;Java的web应用安全目录&#xff1b; 此外如果想在页面访问WEB-INF应用里面的文件&#xff0c;必须要通过w…

音乐创作软件:ToneLIB Jam v4.7.8 Crack

从强大的选项卡编辑器到 3D 模式 Tonelib Jam 是一款用于播放和创作音乐的综合软件应用程序。TL Jam专为初学者和经验丰富的吉他手而设计&#xff0c;可以提供一个完美的平台来掌握乐器&#xff0c;让您轻松学习自己喜欢的歌曲或设置高效的日常吉他练习程序。TL Jam 具有功能强…

华为云云耀云服务器L实例评测|使用华为云耀云服务器L实例的CentOS部署Docker并运行Tomcat应用

目录 前言 步骤1&#xff1a;登录到华为云耀云服务器L实例 步骤2&#xff1a;安装Docker 并验证Docker安装 步骤3&#xff1a;拉取Tomcat镜像并运行Tomcat容器 步骤4&#xff1a;放行8080端口 步骤5&#xff1a;访问tomcat 步骤6&#xff1a;管理Tomcat容器 小结 前言 …

27、Flink 的SQL之SELECT (Pattern Recognition 模式检测)介绍及详细示例(7)

Flink 系列文章 1、Flink 部署、概念介绍、source、transformation、sink使用示例、四大基石介绍和示例等系列综合文章链接 13、Flink 的table api与sql的基本概念、通用api介绍及入门示例 14、Flink 的table api与sql之数据类型: 内置数据类型以及它们的属性 15、Flink 的ta…

【论文阅读】大语言模型中的文化道德规范知识

&#x1f680;Write In Front&#x1f680; &#x1f4dd;个人主页&#xff1a;令夏二十三 &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd; &#x1f4e3;系列专栏&#xff1a;论文阅读 &#x1f4ac;总结&#xff1a;希望你看完之后&#xff0c;能对…

GEO生信数据挖掘(四)数据清洗(离群值处理、低表达基因、归一化、log2处理)

检索到目标数据集后&#xff0c;开始数据挖掘&#xff0c;本文以阿尔兹海默症数据集GSE1297为例 目录 离群值处理 删除 低表达基因 函数归一化&#xff0c;矫正差异 数据标准化—log2处理 完整代码 上节围绕着探针ID和基因名称做了一些清洗工作&#xff0c;还做了重复值检查…

酷开科技OTT大屏营销,做好价值塑造

洞察2023&#xff0c;随着技术与数据入局OTT领域&#xff0c;程序化投放、数据追踪、人群定位等等能力正逐步深入&#xff0c;围绕OTT大屏营销&#xff0c;新营销的价值也正在被重构。随着国内5G、人工智能、云计算等技术不断普及&#xff0c;大屏营销服务成为OTT行业发展的主流…

使用 Python 给 PDF 添加目录书签

0、库的选择——pypdf 原因&#xff1a;Python Version Support Python 3.11 3.10 3.9 3.8 3.7 3.6 2.7 pypdf>3.0 YES YES YES YES YES YES PyPDF2>2.0 YES YES YES YES YES YES PyPDF2 1.20.0 - 1.28.4 YES YES YES YES YES YES P…