python数据分析——pandas数据结构1

参考资料:活用pandas库

1、创建数据

(1)创建Series

        在pandas中,series是一维容器,seires中的数据类型(dtype)必须相同。创建series最简单的方法是传入一个python列表。如果传入的是混合类型的列表,将会使用最常见的类型object。

# 导入库
import pandas as pd
s=pd.Series(['banana',42])
print(s)

        请注意上图中的输出结果,左边显示的“行号”实际是Series的索引。当然也可以指定series的索引,如下:

# 通过传入一个python列表,手动为Series指定索引值
s=pd.Series(["wes mckinney","creator of pandas"],index=["Person","Who"])
print(s)

(2)创建DataFrame

        字典是创建DataFrame最常见的方法,键代表列名,值是列的内容。

scientists=pd.DataFrame({"Name":["Rosaline Franklin","William Gosset"],"Occupation":["Chemist","Statistician"],"Born":["1920-07-25","1876-06-13"],"Died":["1958-04-16","1937-10-16"],"Age":[37,61]
})
print(scientists)

        DataFrame可以使用columns参数指定列的顺序。如果想把那么列作为行索引,可以使用index参数。

scientists=pd.DataFrame({"Occupation":["Chemist","Statistician"],"Born":["1920-07-25","1876-06-13"],"Died":["1958-04-16","1937-10-16"],"Age":[37,61]},index=["Rosaline Franklin","William Gosset"],columns=["Occupation","Born","Died","Age"]
)
print(scientists)

2、Seires

        首先创建一个DataFrame

# 创建名为scients的DataFrame
# 其带有行索引标签
scientists=pd.DataFrame({"Occupation":["Chemist","Statistician"],"Born":["1920-07-25","1876-06-13"],"Died":["1958-04-16","1937-10-16"],"Age":[37,61]},index=["Rosaline Franklin","William Gosset"],columns=["Occupation","Born","Died","Age"]
)
print(scientists)
# 使用行索引标签选择一位科学家
first_row=scientists.loc['William Gosset']
print(type(first_row))
print(first_row)

        我们看输出的结果,第一“列”输出索引,第二“列”输出值。我们可以查看此Seires的索引和值,分别是index属性和values属性,当然我们可以用keys函数来获取索引。如下:

print(first_row.index)
print("-"*20)
print(first_row.keys())
print("-"*20)
print(first_row.values)

(1)类似于ndarray的Series

        Series是pandas的一种数据结构,与numpy.ndarray非常相似,ndarray的许多方法和函数也适用于Series。

        numpy是一个科学计算库,常用于处理数字向量。可以吧Series看作numpy.ndarray的扩展,它们的属性和方法有重叠。针对数字向量,可以进行一些常见的计算,如描述统计。

ages=scientists["Age"]
print(ages)
print("-"*20)
print("均值:",ages.mean())
print("-"*20)
print("最大值:",ages.max())
print("-"*20)
print("最小值:",ages.min())
print("-"*20)
print("标准差:",ages.std(ddof=1))

(2)布尔子集:Series

# 读取数据集
df=pd.read_csv(r"C:\王池池\学习\python\活用pandas库\data\scientists.csv")
# 获取ages数据列作为Series
ages=df["Age"]
print(ages)
# 调用describe方法获取多项描述统计数据
print(ages.describe())
# 调用mean方法获取所有年龄均值
print(ages.mean())
# 获取大于平均值的年龄
print(ages[ages>ages.mean()])
# 查看ages>ages.mean()的返回值
print(ages>ages.mean())

        最后一个print函数的输出结果如下,是一个dtype为bool型的Series。 

(3)操作自动对齐和向量化(广播)

        许多Series方法(以及DataFrame方法)都是向量化的,即这些方法会同时处理整个向量。这种方式让代码更易读,并且通常可以通过优化来加速计算。

        ①如果两个长度相同的向量之间执行计算,所得向量的每个元素是两个向量对应元素的计算结果。

        ②当向量和标量进行运算时,标量会与向量的每个元素逐一进行计算。

        ③处理不同长度的向量时,处理方式决定于向量的类型。对于Series,对向量的操作会根据索引进行。结果限量的其余元素会被填充为“缺失”值,用NaN表示,指“not a number”即“非数值”。

        这种处理方式称为“广播”(broadcasting),pandas的“广播”是指不同shape的数组之间的运算方式。

        ④pandas基本会自动对齐数据。执行操作时,数据会尽可能依据索引标签进行对齐。

# 依据年龄在数据中的原有顺序输出
print(ages)
# 将年龄按索引标签倒序排列
rev_ages=ages.sort_index(ascending=False)
print(rev_ages)
# 参考输出,显示索引标签对齐
print(ages+ages)
# 请注意在向量相反的情况下如何获取相同值
print(ages+rev_ages)

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

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

相关文章

[ES] ElasticSearch节点加入集群失败经历分析主节点选举、ES网络配置 [publish_address不是当前机器ip]

背景 三台CentOS 7.6.1虚拟机, 每台虚拟机上启动一个ElasticSearch 7.17.3(下面简称ES)实例 即每台虚拟机上一个ES进程(每台虚拟机上一个ES节点) 情况是: 之前集群是搭建成功的, 但是今天有一个节点一…

【35分钟掌握金融风控策略19】贷前风控策略详解-4

目录 贷前风控模型体系和模型在策略中的应用 信用模型体系和模型在策略中的应用 申请评分卡模型 收入预测模型 动支模型 融合模型 贷前风控模型体系和模型在策略中的应用 风控过程中需要开发的模型主要包括分类模型、回归模型和聚类模型,这些模型主要是为了解…

将本地托管模型与 Elastic AI Assistant 结合使用的好处

作者:来自 Elastic James Spiteri, Dhrumil Patel 当今公共部门组织利用生成式人工智能解决安全挑战的一种方式。 凭借其筛选大量数据以发现异常模式的能力,生成式人工智能现在在帮助团队保护其组织免受网络威胁方面发挥着关键作用。 它还可以帮助安全专…

博特激光:355nm高精度紫外激光打标机带来极致工艺

紫外激光打标机在现代制造业和技术中的应用,的确在准确度和精密度方面带来了革命性的提高。特别是在微电子、半导体、医疗器械、高端消费品等需要高精度、高清晰打标的行业,紫外激光打标机以其独特的优势,赋予产品极致的工艺品质。 以下是UV激…

编程式导航

目录 一、问题引入 二、基本跳转 1.path路径跳转(简易方便) 2.name命名路由跳转(适合path路径长的场景) 三、路由传参 1.path路径跳转传参 (1)query传参 (2)动态路由传参 2.…

Leetcode—796. 旋转字符串【简单】

2024每日刷题(132) Leetcode—796. 旋转字符串 实现代码 class Solution { public:bool rotateString(string s, string goal) {return ((s.length() goal.length()) && (s s).find(goal) ! string::npos);} };运行结果 之后我会持续更新&am…

Edge视频增强功能

edge://flags/#edge-video-super-resolution 搜索Video查找 Microsoft Video Super Resolution 设置为Enabled

工控组态技术:实现工业自动化控制的重要手段

体验地址:by组态[web组态插件] 工控组态技术是一种应用于工业自动化控制领域的重要技术,它通过将各种不同的硬件设备和软件系统进行组合和配置,实现了工业生产过程的自动化控制和优化。 随着工业技术的不断发展和进步,工控组态技…

linux性能监控之top

说完了atop和htop,我们在来说说Linux自带的top,我们先看看命令效果: 可以看到是一个实时的系统监控工具,提供了一个动态的、交互式的实时视图,显示系统的整体性能信息以及正在运行的进程的相关信息。 我们先来解析下命…

UnsupportedClassVersionError异常如何解决?

下面是异常报错的详细描述 java -version java version "17.0.11" 2024-04-16 LTS Java(TM) SE Runtime Environment (build 17.0.117-LTS-207) Java HotSpot(TM) 64-Bit Server VM (build 17.0.117-LTS-207, mixed mode, sharing) 环境变量已经是jdk17,但…

6 7 8 9 11 12 15 17 18 20 22cm散热风扇防护网风扇金属网罩

品牌:威驰 颜色分类:60mm/6cm金属网,80mm/8cm金属网,92mm/9.2cm金属网,110mm/11cm金属网,120mm/12cm金属网,150mm/15cm金属网,172mm/17.2cm金属网,200mm/20cm金属网,280mm/28cm金属网 1产品参数,防护网罩60 80 90 110 120 125 145 150 180…

【Spring之依赖注入】2. Spring处理@Async导致的循环依赖失败问题

使用异步Async注解后导致的循环依赖失败详解 1 问题复现1.1 配置类1.2 定义Service1.3 定义Controller1.4 启动springboot报错 2.原因分析:看Async标记的bean注入时机2.1 循环依赖生成过程2.2 自检程序 doCreateBean方法 3.解决方案3.1 懒加载Lazy3.1.1 将Lazy写到A…

FANUC机器人工具坐标偏移的用法

一、工具坐标偏移的使用场景 在机器人位置不改变的情况下,工业机器人使用默认工具坐标系示教的一系列运动点位,要保持原本点位位置不变的情况下,改变机器人工具坐标的参数,就要用到机器人坐标转化的功能。在FANUC机器人上体现为机…

单链表经典oj题(2)

前言 这次将要把剩下的oj题将以图解和自己的理解把它讲解完,希望对大家有所帮助,这次的讲解也是干货 第一题 21. 合并两个有序链表 - 力扣(LeetCode) ok这次就简单点,大家自己去看题目了 将两个升序链表合并为一个…

流量分析(一)

数据库类流量分析 MySQL流量 常规操作,查找flag ctfhub{} 注意要选择字符集 Redis流量 查找ctfhub结果没找到 尝试把其变成十六进制继续进行查找 看到了前半段flag 接着往下看 找到了后半段的flag MongoDB流量 还是一样查找ctfhub 字符串没找到 转成十六进制也没…

《软件方法(下)》8.3.2.2 警惕拼凑泛化(202405更新)

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 8.3 建模步骤C-2 识别类的关系 8.3.2 识别泛化关系 8.3.2.1 识别泛化的思路 (3)自上而下(从一般到特殊) 如图8-92所示,这…

目标检测——道路检测数据集

引言 亲爱的读者们,您是否在寻找某个特定的数据集,用于研究或项目实践?欢迎您在评论区留言,或者通过公众号私信告诉我,您想要的数据集的类型主题。小编会竭尽全力为您寻找,并在找到后第一时间与您分享。 …

鹦鹉优化算法原理及代码实现

鹦鹉(Pyrrhura Molinae)表现出四种不同的行为特征:觅食、停留、交流和对陌生人的恐惧。这些行为(如图1所示)在现实环境中构成了我们设计PO动机的基础。 觅食:驯化的鹦鹉(Pyrrhura Molinae)的觅食行为令人着迷,因为个体选择在食物丰富的小群体…

第十三届蓝桥杯决赛(国赛)真题 Java A 组【原卷】

文章目录 发现宝藏【考生须知】试题 A: 火柴棒数字试题 B: 小蓝与钥匙试题 C: 内存空间试题 D: 斐波那契数组试题 E: 交通信号试题 F: 数组个数试题 G: 六六大顺试题 H : \mathrm{H}: H: 选素数试题 I: 图书借阅试题 J \mathrm{J} J : 括号序列树 发现宝藏 前些天发现了一个…

Web服务器--虚拟主机配置

实验1:建立两个基于ip地址访问的网站,要求如下 该网站ip地址的主机位为100,设置DocumentRoot为/www/ip/100,网页内容为:this is 100。 该网站ip地址主机位为200,设置DocumentRoot为/www/ip/200&#xff0c…