【python学习第12节 pandas】

news2024/11/25 18:28:10

文章目录

  • 一,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.coloradmin.cn/o/1056620.html

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

相关文章

2023年【道路运输企业安全生产管理人员】最新解析及道路运输企业安全生产管理人员考试技巧

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 道路运输企业安全生产管理人员最新解析参考答案及道路运输企业安全生产管理人员考试试题解析是安全生产模拟考试一点通题库老师及道路运输企业安全生产管理人员操作证已考过的学员汇总&#xff0c;相对有效帮助道路运…

leetcode-239-滑动窗口最大值

题意描述&#xff1a; 给你一个整数数组 nums&#xff0c;有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 示例&#xff1a; 输入&#xff1a;nums [1,3,-1,…

【C++】单例

设计一个类&#xff0c;只能在堆上创建对象 只能在堆上创建对象&#xff0c;也就是只能通过new操作符创建对象&#xff0c;方式如下&#xff1a; 将析构函数设为私有将释放空间的操作在类内保留一个接口&#xff0c;只能在类内进行调用将构造函数设置为私有&#xff0c;防止外…

计算机组成与结构

目录 一、计算机硬件组成 二、中央处理单元 1、功能 2、CPU的组成 三、校验码 四、体系结构的分类 1、按处理机数量分类 2、Flynn分类 五、指令系统 1、指令 2、寻址方式 3、指令系统 #CISC&#xff08;复杂指令集计算机&#xff09; RISC&#xff08;精简指令集…

阿里云关系型数据库有哪些?RDS云数据库汇总

阿里云RDS关系型数据库大全&#xff0c;关系型数据库包括MySQL版、PolarDB、PostgreSQL、SQL Server和MariaDB等&#xff0c;NoSQL数据库如Redis、Tair、Lindorm和MongoDB&#xff0c;阿里云百科分享阿里云RDS关系型数据库大全&#xff1a; 目录 阿里云RDS关系型数据库大全 …

图解大模型微调系列之:大模型低秩适配器LoRA(原理篇)

关于LORA部分的讲解&#xff0c;我们将分为**“原理篇”和“源码篇”**。 在原理篇中&#xff0c;我们将通过图解的方式&#xff0c;详细分析LoRA怎么用、为什么能奏效、存在哪些优劣势等核心问题。特别是当你在学习LoRA时&#xff0c;如果对“秩”的定义和作用方式感到迷惑&a…

基于Java的库存管理系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09;有保障的售后福利 代码参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作…

先做一年的弱电在做网络工程师这个顺序对不对

大家好&#xff0c;我是网络工程师成长日记实验室的郑老师&#xff0c;您现在正在查看的是网络工程师成长日记专栏&#xff0c;记录网络工程师日常生活的点点滴滴 有个同学说他原来是做视频审核的那个工作&#xff0c;我离职了&#xff0c;26岁他看了一些相关视频。他说他现在打…

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

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

SpringCloud Alibaba - Sentinel 高级玩法,修改 Sentinel-dashboard 源码,实现 push 模式

目录 一、规则持久化 1.1、什么是规则持久化 1.1.1、使用背景 1.1.2、规则管理的三种模式 a&#xff09;原始模式 b&#xff09;pull 模式 c&#xff09;push 模式 1.2、实现 push 模式 1.2.1、修改 order-service 服务&#xff0c;使其监听 Nacos 配置中心 1.2.2、修…

基于SpringBoot+Vue的企业信息反馈平台

1 简介 企业客户信息反馈的需求和管理上的不断提升&#xff0c;企业客户信息反馈管理的潜力将无限扩大&#xff0c;企业客户信息反馈平台在业界被广泛关注&#xff0c;本平台及对此进行总体分析&#xff0c;将企业客户信息反馈信息管理的发展提供参考。企业客户信息反馈平台对企…

【多任务案例:猫狗脸部定位与分类】

【猫狗脸部定位与识别】 1 引言2 损失函数3 The Oxford-IIIT Pet Dataset数据集4 数据预处理4 创建模型输入5 自定义数据集加载方式6 显示一批次数据7 创建定位模型8 模型训练9 绘制损失曲线10 模型保存与预测 1 引言 猫狗脸部定位与识别分为定位和识别&#xff0c;即定位猫狗…

批量导入、筛选与删除,文件改名从未如此简单!

您是否曾经为了给文件夹中的文件批量改名而感到烦恼&#xff1f;现在&#xff0c;有了我们的文件批量改名工具&#xff0c;这些问题都将成为过去&#xff01; 第一步&#xff0c;我们打开需要改名文件夹&#xff0c;可以看到里面文件名很多&#xff0c;很乱。 第二步进入文件批…

Acwing 844. 走迷宫

Acwing 844. 走迷宫 知识点题目描述思路讲解代码展示 知识点 BFS 题目描述 思路讲解 宽搜可以搜到最短路径&#xff1a; 代码展示 #include <cstring> #include <iostream> #include <algorithm> #include <queue>using namespace std;typedef pa…

传输层协议—UDP协议

传输层协议—UDP协议 文章目录 传输层协议—UDP协议传输层再谈端口号端口号范围划分pidofnetstat UDP协议端格式UDP报文UDP特点UDP缓冲区基于UDP的应用层协议 传输层 在学习HTTP/HTTPS等应用层协议时&#xff0c;为了方便理解&#xff0c;可以简单认为HTTP将请求和响应直接发送…

基于Java的图书个性化推荐系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09;有保障的售后福利 代码参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作…

基于Java的校园失物招领平台设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09;有保障的售后福利 代码参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作…

E. Mishap in Club

题目&#xff1a; 样例1&#xff1a; 输入 --输出 1 样例2&#xff1a; 输入 --- 输出 3 思路&#xff1a; 数学贪心模拟思路&#xff0c;由于不知道在俱乐部的人数和在外面的人数&#xff0c;又要尽可能少的人数&#xff0c;那么定义两个变量&#xff0c;一个是里面的人数 i…

Python中使用IDLE调试程序

在IDLE中&#xff0c;使用菜单栏中的“Debug”对IDLE打开的python程序进行调试。 1 打开调试开关 选择IDLE菜单栏的“Debug->Debugger”&#xff0c;如图1①所示&#xff1b;此时在IDLE中会显示“[DEBUG ON]”&#xff0c;即“调试模式已打开”&#xff0c;如图1②所示&am…

JMeter学习第三天+

性能测试前言 老师开局一句话&#xff1a;性能测试和你会不会JMeter一点关系没有…… 作者坚持技多不压身的原则&#xff0c;还是多学一点JMeter吧&#xff0c;看老师到底要怎么讲下去&#xff0c;什么并发量、吞吐量啥的…… 性能测试的核心思想&#xff1a;在于创造大量并发去…