【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.rhkb.cn/news/146685.html

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

相关文章

海信电视U8KL使用体验:参数卷,画质技术也独有!

每个家庭成员对电视都有不同需求&#xff0c;如何能做到兼顾&#xff1f;看似需求众口难调&#xff0c;其实一台海信电视就能满足所有啦。 海信电视的参数不仅是最卷的&#xff0c;同时画质技术还是国内独有的&#xff0c;能把这样一台优秀的电视搬回家&#xff0c;无论电影、…

云原生Kubernetes:对外服务之 Ingress

目录 一、理论 1.Ingress 2.部署 nginx-ingress-controller(第一种方式) 3.部署 nginx-ingress-controller(第二种方式) 二、实验 1.部署 nginx-ingress-controller(第一种方式) 2.部署 nginx-ingress-controller(第二种方式) 三、问题 1.启动 nginx-ingress-controll…

【MySQL入门到精通-黑马程序员】MySQL基础篇-DML

文章目录 前言一、DML-介绍二、DML-添加数据三、DML-修改数据四、DML-删除数据总结 前言 本专栏文章为观看黑马程序员《MySQL入门到精通》所做笔记&#xff0c;课程地址在这。如有侵权&#xff0c;立即删除。 一、DML-介绍 DML&#xff08;Data Manipulation Language&#xf…

Cinema 4D 2024更新, 比旧版速度更快!

Cinema 4D 2024 for Mac更新至v2024.0.2版本&#xff0c;其中Cinema 4D核心得到了全面优化&#xff0c;增强了可调的Pyro模拟、增强了真实镜头耀斑和色彩校正工作流程。 Cinema 4D 2024变得更加强大&#xff0c;在交互式播放方面有了巨大的性能改进&#xff0c;对刚性体模拟进行…

手撸RPC【gw-rpc】

文章目录 基于 Netty 的简易版 RPC需求分析简易RPC框架的整体实现协议模块 &#x1f4d6;自定义协议 &#x1f195;序列化方式 &#x1f522; 服务工厂 &#x1f3ed;服务调用方 ❓前置知识——动态代理&#x1f573;️Proxy类InvocationHandler 接口 RPC服务代理类内嵌Netty客…

【iptables 实战】01 iptables概念

一、iptables和netfilter iptables其实不是真正的防火墙&#xff0c;我们可以把它理解成一个客户端代理&#xff0c;用户通过iptables这个代理&#xff0c;将用户的安全设定执行到对应的”安全框架”中&#xff0c;这个”安全框架”才是真正的防火墙&#xff0c;这个框架的名字…

TVP专家谈腾讯云 Cloud Studio:开启云端开发新篇章

导语 | 近日&#xff0c;由腾讯云 TVP 团队倾力打造的 TVP 吐槽大会第六期「腾讯云 Cloud Studio」专场圆满落幕&#xff0c;6 位资深的 TVP 专家深度体验腾讯云 Cloud Studio 产品&#xff0c;提出了直击痛点的意见与建议&#xff0c;同时也充分肯定了腾讯云 Cloud Studio 的实…

c与c++中的字符串

在c中&#xff0c;string本质上是一个类&#xff1b; string与char *有些区别&#xff1a; char*是一个指针&#xff1b;string是一个类&#xff0c;类内封装了char*&#xff0c;管理这一个字符串&#xff0c;是一个char*的容器 在使用string类型时&#xff0c;要加上其头文…

【Cesium创造属于你的地球】相机系统

相机系统里面有setView&#xff0c;flyTo&#xff0c;lookAt&#xff0c;viewBoundingsphere这几种方法&#xff0c;以下是相关的使用方法&#xff0c;学起来&#xff01;&#xff01;&#xff01; setView 该方法可以直接切换相机视口&#xff0c;从而不需要通过一个飞入的效…

uniapp - 微信小程序实现腾讯地图位置标点展示,将指定地点进行标记选点并以一个图片图标展示出来(详细示例源码,一键复制开箱即用)

效果图 在uniapp微信小程序平台端开发,简单快速的实现在地图上进行位置标点功能,使用腾讯地图并进行标点创建和设置(可以自定义标记点的图片)。 你只需要复制代码,改个标记图标和位置即可。

CDH 6.3.2升级Flink到1.17.1版本

CDH&#xff1a;6.3.2 原来的Flink&#xff1a;1.12 要升级的Flink&#xff1a;1.17.1 操作系统&#xff1a;CentOS Linux 7 一、Flink1.17编译 build.sh文件&#xff1a; #!/bin/bash set -x set -e set -vFLINK_URLsed /^FLINK_URL/!d;s/.*// flink-parcel.properties FLI…

好看的货架效果(含3D效果)

搭配thymeleaf layui合成 货架一 1. css #gudinghuojia2F .layui-row { display: flex; justify-content: space-between; height: 100%;} #gudinghuojia2F .layui-col-xs10 {margin-right: 4%;} #gudinghuojia2F .layui-col-xs10:last-child {margin-right: 0;} .inner-ti…

Ubuntu性能分析-ftrace 底层驱动

1、框架介绍 ftrace内核驱动可以分为几部分:ftrace framework,RingBuffer,debugfs,Tracepoint,各种Tracer。 ftrace框架是整个ftrace功能的纽带,包括对内和的修改,Tracer的注册,RingBuffer的控制等等。 RingBuffer是静态动态ftrace的载体。 debugfs则提供了用户空间…

WPS Office for Linux即将面临开源

WPS Office 是一款免费&#xff08;但不开源&#xff09;的办公套件&#xff0c;目前已经在 Windows、macOS、Android、iOS 和 Linux 设备上线&#xff0c;由于在界面和功能上模仿了微软 Office 的部分特性&#xff0c;对于那些轻量办公的用户来说已经能够完全驾驭大部分需求。…

Explain执行计划字段解释说明---ID字段说明

ID字段说明 1、select查询的序列号,包含一组数字&#xff0c;表示查询中执行select子句或操作表的顺序 2、ID的三种情况 &#xff08;1&#xff09;id相同&#xff0c;执行顺序由上至下。 &#xff08;2&#xff09;id不同&#xff0c;如果是子查询&#xff0c;id的序号会…

为什么都说NFS读写性能差,如何进行优化?

使用基于NFS协议存储系统的同学经常遇到的问题是在小文件比较多的情况下性能会比较差。小文件访问性能差本身是可以理解的,但是NFS确实是太差了。不知大家是否深层次分析过,为什么NFS访问小文件性能会这么差? NFS文件系统与本地文件系统的差异在于多了一个网络传输的过程。…

洛谷P5732 【深基5.习7】杨辉三角题解

目录 题目【深基5.习7】杨辉三角题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1传送门 代码解释亲测 题目 【深基5.习7】杨辉三角 题目描述 给出 n ( n ≤ 20 ) n(n\le20) n(n≤20)&#xff0c;输出杨辉三角的前 n n n 行。 如果你不知道什么是杨辉三角&#xf…

【Linux】常用命令总结(简略版)

【Linux】常用命令总结&#xff08;简略版&#xff09; 前言常用快捷键操作&#xff1a; 文件管理1、pwd 显示当前路径2、ls查看目录&#xff08;dir 功能一样&#xff09;3、cd 切换到指定路径4、mkdir 创建一个空目录5、rmdir 删除一个空目录6、rm 删除文件或目录7、touch 创…

算法-排序算法

0、算法概述 0.1 算法分类 十种常见排序算法可以分为两大类&#xff1a; 比较类排序&#xff1a;通过比较来决定元素间的相对次序&#xff0c;由于其时间复杂度不能突破O(nlogn)&#xff0c;因此也称为非线性时间比较类排序。 非比较类排序&#xff1a;不通过比较来决定元素间…

归并排序及其非递归实现

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 目录 归并排序递归实现 归并排序非递归实现 归并排序递归实现 图示&#xff1a; 代码&#xff1a; 先分再归并&#xff0c;像是后序一般。 //归并排序 void MergeSort(int* arr, int left, int right) {int* temp (int…