pandas基础:基本数据结构

news2025/1/24 7:32:54

基本数据结构

pandas中具有两种基本的数据存储结构,存储一维valuesSeries和存储二维valuesDataFrame,在这两种结构上定义了很多的属性和方法。

Series

Series一般由四个部分组成,分别是序列的值data、索引index、存储类型dtype、序列的名字name。其中,索引也可以指定它的名字,默认为空。

import numpy as np
import pandas as pd

s = pd.Series(
    data = [1,2,3],
    index = ['a','b','c'],
    dtype = object,
    name = 'my_series'
)
print(s)

输出:

a    1
b    2
c    3
Name: my_series, dtype: object

object代表了一种混合类型。np.object被弃用。

print(s.values) # pd.Series.data
print(s.index) # pd.Series.index
print(s.dtype) # pd.Series.dtype
print(s.name) # pd.Series.name

.shape获得Series的形状:

print(s.shape) # (3,)

DataFrame

DataFrameSeries的基础上增加了列索引,一个数据框可以由二维的data与行列索引来构造。

import numpy as np
import pandas as pd

data = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

df = pd.DataFrame(
    data = data,
    index = ['row_%d'%i for i in range(1,4)],
    columns = ['col_%d'%i for i in range(1,4)]
)
print(df)

输出:

     col_1  col_2  col_3
row_1      1      2      3
row_2      4      5      6
row_3      7      8      9

采用从列索引名到数据的映射来构造数据框,同时再加上行索引:

import numpy as np
import pandas as pd

df = pd.DataFrame(
    data = {
        'col_1':[1,2,3],
        'col_2':['A','B','C'],
        'col_3':np.random.randn(3)
    },
    index = ['row_1','row_2','row_3']
)
print(df)

输出:

       col_1 col_2     col_3
row_1      1     A -1.677007
row_2      2     B -0.627393
row_3      3     C  0.563569
import numpy as np
import pandas as pd

pd_data = {
    'col_1': [1,2,4],
    'col_2': [4,5,6],
    'col_3': [7,8,9]
}
pd_data_row = ['row_1', 'row_2', 'row_3']
df = pd.DataFrame(
    data = pd_data,
    index = pd_data_row
)
print(df)

输出:

      col_1  col_2  col_3
row_1      1      4      7
row_2      2      5      8
row_3      4      6      9

由于这种映射关系,在DataFrame中可以用[col_name][col_list]来取出相应的列与由多个列组成的表,结果分别为SeriesDataFrame

import numpy as np
import pandas as pd

pd_data = {
    'col_1': [1,2,4],
    'col_2': [4,5,6],
    'col_3': [7,8,9]
}
pd_data_row = ['row_1', 'row_2', 'row_3']
df = pd.DataFrame(
    data = pd_data,
    index = pd_data_row
)
print(df['col_1']) # Series 一列

输出:

row_1    1
row_2    2
row_3    4
Name: col_1, dtype: int64

既然是Series,那么就可以使用Series的获取方法:

print(df['col_1'].values) # 获取Series的值
# [1 2 4]

两个[]嵌套的是DataFrame类型:

print(df[['col_1']]) # DataFrame 一列
#        col_1
# row_1      1
# row_2      2
# row_3      4

pandas 中,当你从DataFrame中选择列时,选择的方式会影响返回的数据类型。具体来说,选择单列时返回的是 Series 类型,而选择多列时返回的是 DataFrame 类型。这种行为是设计上的选择,目的是为了提供更灵活的数据操作方式。

列名选择得到的是Series。

列名列表选择得到的是DataFrame。

同时,DataFrame也有形如Series的获取方法:

print(df.values)
print(df.index)
print(df.columns)
print(df.dtypes)
print(df.shape)
# [[1 4 7]
#  [2 5 8]
#  [4 6 9]]
# Index(['row_1', 'row_2', 'row_3'], dtype='object')
# Index(['col_1', 'col_2', 'col_3'], dtype='object')
# col_1    int64
# col_2    int64
# col_3    int64
# dtype: object
# (3, 3)

Joyful-Pandas-课程详情 | Datawhale

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

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

相关文章

System slimming and Quicker action

今天介绍2款提升工作效率的软件,一款用于系统瘦身,当你的各个盘快满的时候,你又不知道该删除哪些文件的时候,就可以用这个插件,进行系统瘦身;另外一款是可以快捷做很多操作以节省时间,比如有很多…

2025年华为云一键快速部署饥荒联机服务器教程

饥荒是一款动作冒险类求生游戏,自行部署专属游戏联机服务器,可以确保游戏的流畅性和稳定性,获得更好的游戏体验。为了方便玩家搭建专属游戏联机服务器,华为云推出了云游戏专场,无需专业技术,新手小白也能一…

OSCP - Proving Grounds - Quackerjack

主要知识点 端口转发 具体步骤 执行nmap扫描,开了好多端口,我先试验80和8081,看起来8081比较有趣 Nmap scan report for 192.168.51.57 Host is up (0.0011s latency). Not shown: 65527 filtered tcp ports (no-response) PORT STATE SERVICE …

Go 切片:用法和本质

要想更好的了解一个知识点,实战是最好的经历。 题目 我这里放一道题目: package mainimport "fmt"func SliceRise(s []int) {s append(s, 0)for i : range s {s[i]}fmt.Println(s) }func SlicePrint() {s1 : []int{1, 2}s2 : s1s2 append…

零售业革命:改变行业的顶级物联网用例

mpro5 产品负责人Ruby Whipp表示,技术进步持续重塑零售业,其中物联网(IoT)正引领这一变革潮流。 研究表明,零售商们正在采用物联网解决方案,以提升运营效率并改善顾客体验。这些技术能够监控运营的各个方面…

安卓动态设置Unity图形API

命令行方式 Unity图像api设置为自动,安卓动态设置Vulkan、OpenGLES Unity设置 安卓设置 创建自定义活动并将其设置为应用程序入口点。 在自定义活动中,覆盖字符串UnityPlayerActivity。updateunitycommandlineararguments (String cmdLine)方法。 在该方法中,将cmdLine…

Go学习:iota枚举

iota注意事项: iota:常量自动生成器,每隔一行,自动累加iota给常量赋值使用iota 遇到 const,重置为 0可以只写一个iotaiota如果是同一行,值都一样 简单代码: package mainimport "fmt&qu…

SpringBoot篇 单元测试 理论篇

1.单元测试概念介绍 简单来说,单元测试是对软件中的最小可测试单元进行检查和验证。在 Java 中,单元测试的最小单元是类。Spring Boot 提供了 spring-boot-starter-test 依赖,包含了 JUnit、Mockito、Hamcrest 等常用的测试框架1。&#xff0…

Formality:不可读(unread)的概念

相关阅读 Formalityhttps://blog.csdn.net/weixin_45791458/category_12841971.html?spm1001.2014.3001.5482https://blog.csdn.net/weixin_45791458/category_12841971.html?spm1001.2014.3001.5482 在Formality中有时会遇到不可读(unread)这个概念,本文就将对此…

ThreeJS示例教程200+【目录】

Three.js 是一个强大的 JavaScript 库,旨在简化在网页上创建和展示3D图形的过程。它基于 WebGL 技术,但提供了比直接使用 WebGL 更易于使用的API,使得开发者无需深入了解 WebGL 的复杂细节就能创建出高质量的3D内容。 由于目前内容还不多,下面的内容暂时做一个占位。 文章目…

【前端】Hexo 部署指南_hexo-deploy-git·GitHub Actions·Git Hooks

文章目录 前言基于 hexo-deploy-git基于 GitHub Actions基于 Git Hooks云平台端服务器端Git HooksSSHNginx 本地机端原理参考 前言 原文地址:https://blog.dwj601.cn/FrontEnd/Hexo/hexo-deployment/ #mermaid-svg-dfuCXqzZCx5I07IO {font-family:"trebuchet …

法律与认知战争:新时代的战略博弈

文章目录 前言全文摘要与关键词一、影响意志二、通过网络空间进行认知战1、网络行动的影响>行为本身2、与破坏性网络攻击相反,数字影响力行动可以产生战略效果三、法律作为一种战争工具四、如何反制法律战的使用?1、自由民主国家需要认识到俄罗斯等国的认知战在意图和深度上…

【Linux】其他备选高级IO模型

其他高级 I/O 模型 以上基本介绍的都是同步IO相关知识点,即在同步I/O模型中,程序发起I/O操作后会等待I/O操作完成,即程序会被阻塞,直到I/O完成。整个I/O过程在同一个线程中进行,程序在等待期间不能执行其他任务。下面…

Arduino D1 通过 Wi-Fi 控制 LED

Arduino D1 通过 Wi-Fi 控制 LED 硬件连接 将 LED 的正极(长脚)连接到 Arduino D1 的 D1 引脚。将 LED 的负极(短脚)通过一个电阻(例如 220 欧姆)连接到 Arduino D1 的 GND 引脚。 安装必要的库 在 Ard…

Flutter:自定义Tab切换,订单列表页tab,tab吸顶

1、自定义tab切换 view <Widget>[// 好评<Widget>[TDImage(assetUrl: assets/img/order4.png,width: 36.w,height: 36.w,),SizedBox(width: 10.w,),TextWidget.body(好评,size: 24.sp,color: controller.tabIndex 0 ? AppTheme.colorfff : AppTheme.color999,),]…

Tailscale 配置 subnet 实现访问 Openwrt 路由器下的子网

Openwrt 安装 Tailscale 参考 OpenWrt 配置 Tailscale 内网穿透。 tailscale两台openwrt(双lan)网对网(site to site)互通OpenWrt安装配置Tailscale 在 OpenWrt 上使用 Tailscale 使用 tailscale subnet 在openwrt terminal 执行 tailscale up --advertise-routes192.168.…

低代码可视化-转盘小游戏可视化-代码生成器

转盘小程序是一种互动工具&#xff0c;它通过模拟真实的转盘抽奖或决策体验&#xff0c;为用户提供了一种有趣且公平的选择方式。以下是对转盘小程序的详细介绍&#xff1a; 转盘小程序的应用场景 日常决策&#xff1a;转盘小程序可以帮助用户解决日常生活中的选择困难问题&a…

【Uniapp-Vue3】uni-icons的安装和使用

一、uni-icon的安装 进入到如下页面中&#xff0c;点击“点击下载&安装”。 uni-icons 图标 | uni-app官网 点击“下载插件并导入HBuilder”&#xff0c;如果没有登录就登陆一下 网页中会打开Hbuilder&#xff0c;进入Hbuilder以后&#xff0c;选择需要使用该插件的项目进…

【橘子ES】Kibana的分析能力Analytics简易分析

一、kibana是啥&#xff0c;能干嘛 我们经常会用es来实现一些关于检索&#xff0c;关于分析的业务。但是es本身并没有UI,我们只能通过调用api来完成一些能力。而kibana就是他的一个外置UI&#xff0c;你完全可以这么理解。 当我们进入kibana的主页的时候你可以看到这样的布局。…

一、引论,《组合数学(第4版)》卢开澄 卢华明

零、前言 发现自己数数题做的很烂&#xff0c;重新学一遍组合数学吧。 参考卢开澄 卢华明 编著的《组合数学(第4版)》&#xff0c;只打算学前四章。 通过几个经典问题来了解组合数学所研究的内容。 一、幻方问题 据说大禹治水之前&#xff0c;河里冒出来一只乌龟&#xff0c…