Pandas 学习(数学建模篇)

今天学习数学建模2023年C篇(228)优秀论文

2023高教社杯全国大学生数学建模竞赛C题论文展示(C228) - 2023C题论文 - 中国大学生在线

一.pd.DataFrame

pd.DataFrame() 是 pandas 库中用于创建二维表格数据结构(DataFrame)的核心函数。它的作用是将各种格式的数据(如字典、列表、Series 等)转换为带有行索引和列标签的表格形式,便于数据处理和分析.

import  pandas as pd
data={'单品编码': ['001', '002', '003'],'分类名称': ['水果', '蔬菜', '水果'],'价格': [5.0, 3.0, 8.0]}
#解读:{}为字典,{A:B}为字典里面的健值对。[a,b,c]为列表
print(pd.DataFrame(data))

输出:

 单品编码 分类名称   价格
0  001   水果  5.0
1  002   蔬菜  3.0
2  003   水果  8.0

二,mapping_dict =df_1.set_index('单品编码')['分类名称'].to_dict()代码解读

(一)df_1.set_index('单品编码') 这一步会把 DataFrame df_1 的索引设置为单品编码列,返回一个新的 DataFrame。

  • 示例:假设原 DataFrame 是:
       单品编码  分类名称   价格
    0  001    水果    5.0
    1  002    蔬菜    3.0
    2  003    水果    8.0

     执行后,变成:

       分类名称   价格
单品编码             
001     水果    5.0
002     蔬菜    3.0
003     水果    8.0

(二)['分类名称']

         这一步会从上面的 DataFrame 中选取分类名称列,返回一个 Series,其中单品编码是索引,分类名称是值。

单品编码
001    水果
002    蔬菜
003    水果
Name: 分类名称, dtype: object

(3)to_dict()

这一步会把 Series 转换为字典,其中索引(单品编码)会成为字典的键,值(分类名称)会成为字典的对应值

{'001': '水果', '002': '蔬菜', '003': '水果'}

三,关于series的知识点

Series 是 pandas 库中一种一维带标签的数据结构,类似于带索引的数组或列表。它可以存储任何数据类型(整数、字符串、浮点数、Python 对象等),并且每个元素都有一个对应的标签(索引)。理解 Series 是掌握 pandas 的基础,因为它是 DataFrame(二维表格)的基本组成单元。

创建方式:

import pandas as pd# 从列表创建,默认索引为 0, 1, 2...
s = pd.Series([10, 20, 30, 40])
print(s)
# 输出:
# 0    10
# 1    20
# 2    30
# 3    40
# dtype: int64# 指定自定义索引
s = pd.Series([10, 20, 30, 40], index=['a', 'b', 'c', 'd'])
print(s)
# 输出:
# a    10
# b    20
# c    30
# d    40
# dtype: int64

理解Series与DataFrame的关系:

  • DataFrame 是由多个 Series 组成的二维表格,每一列都是一个 Series。
  • Series 的索引对应 DataFrame 的行索引,Series 的名称(name 属性)对应 DataFrame 的列名。
  • 代码示例:
    # 用两个 Series 创建 DataFrame
    s1 = pd.Series([1, 2, 3], index=['a', 'b', 'c'], name='A')
    s2 = pd.Series([4, 5, 6], index=['a', 'b', 'c'], name='B')df = pd.DataFrame({'列1': s1, '列2': s2})
    print(df)
    # 输出:
    #    列1  列2
    # a   1   4
    # b   2   5
    # c   3   6

    三,grouped = df.groupby('单品编码')的解析

    groupby作用是根据 df 这个 DataFrame 中 ‘单品编码’ 这一列的值,将 df 中的行进行分组。它创建了一个特殊的 Pandas 对象,称为“GroupBy 对象”(grouped),这个对象内部包含了按 ‘单品编码’ 分组后的各个数据子集。

    不是直接获取列,而是基于列的值进行分组
    示例:当我们获得这样的数据后:

    日期	单品编码	销售量
    2023-01-01	A001	10
    2023-01-15	A002	5
    2023-02-01	A001	8
    2023-02-10	A003	12
    2023-03-05	A002	7
    2023-03-20	A001	15
     grouped = df.groupby('单品编码')for name, group in grouped:print(f"分组键: {name}")print(group)print("-" * 20)

    输出为:

        分组键: A001日期     单品编码  销售量0 2023-01-01    A001    102 2023-02-01    A001     85 2023-03-20    A001    15--------------------分组键: A002日期     单品编码  销售量1 2023-01-15    A002     54 2023-03-05    A002     7--------------------分组键: A003日期     单品编码  销售量3 2023-02-10    A003    12--------------------

    四,字典的创建

  • 创建一个空字典:

  •    results = {}

    添加字典

  •    results[key] = value

    这将为字典 results 添加一个键为 key、值为 value 的键值对。如果 key 已经存在,则更新其对应的值。

  • 访问值

       value = results[key]

    这将获取键 key 对应的值。如果 key 不存在,将引发 KeyError。

  • 就学到这,内容比较基础,谢谢观看

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

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

相关文章

第七讲:C++中的string类

目录 1、认识string类 2、标准库中的string类 2.1、string类的常见接口 2.1.1、构造与赋值重载 2.1.2、迭代器 2.1.3、容量 2.1.4、访问 2.1.5、修改 2.1.6、字符串操作 2.1.7、成员常量 2.1.8、非成员函数 2.1.9、转换函数 2.2、vs和g下的string 2.2.1、vs下的s…

elementUI 前端表格table数据导出(一)

为啥前端导出不在赘述了第一步:安装xlsxnpm install xlsx第二步:创建js文件html2excelimport * as XLSX from xlsx;const htmlToExcel {getExcel(dom, title temp){var excelTitle title;// const XLSX require("xlsx");var wb XLSX.util…

LabVIEW 波形图表横坐标显示当前日期

LabVIEW 程序如何实现波形图表横坐标显示当前日期一、XY Graph 时间关联逻辑(右上角分支)功能本质实时采集当前系统时间(秒数形式,基于 1904 基准),直接映射为 XY Graph 的 X 轴时间标识,实现动…

Android Soundtrigger唤醒相关时序学习梳理

本文所写内容是在高通芯片平台相关代码基础上学习整理汇总,如有描述不当之处,欢迎指正!1、SoundTrigger注册唤醒监听事件回调流程(SoundTrigger HAL层到ADSP层,不包括FWK层)//(1)SoundTriggerSession 回调 …

OSPF实验以及核心原理全解

OSPF(Open Shortest Path First,开放式最短路径优先)是一种基于链路状态的内部网关协议(IGP),广泛应用于中大型网络中。它通过维护网络拓扑信息,使用 SPF(最短路径优先)算…

Using Spring for Apache Pulsar:Transactions

本节介绍Spring for Apache Pulsar如何支持事务。OverviewSpring for Apache Pulsar事务支持是基于Spring Framework提供的事务支持构建的。在高层,事务资源向事务管理器注册,事务管理器反过来处理注册资源的事务状态(提交、回滚等&#xff0…

在Ubuntu上从零开始编译并运行Home Assistant源码并集成HACS与小米开源的Ha Xiaomi Home

目录1. 前言&&叠甲2. 使用的环境3. 相关链接4. 前期步骤4.1 安装路径提前说明4.2 Ubuntu 相关依赖安装4.3 Python源码编译安装4.3.1 编译安装4.3.2 换源4.3.3 环境变量5. 构建Home Assistant源码5.1 clone源码5.2 创建虚拟Python环境5.3 安装项目依赖5.4 安装项目5.5 运…

【实习篇】之Http头部字段之Disposition介绍

Http头部字段之DispositionDisposition头部字段介绍RFC规范介绍RFC 6266与RFC 2047实习的时候公司将一个某个关于下载的Bug交给了我来修,看了代码和日志后发现是Disposition字段的规范兼容性惹的锅,因为有些协议使用的是老协议,我们的项目没有…

VM文件管理与Vi/vim操作

[rootlocalhost /]# sudo mkdir /opt [rootlocalhost /]# sudo mkdir /opt/tmp [rootlocalhost /]# sudo touch /opt/tmp/a.txt [rootlocalhost /]# ls /opt/tmp/ a.txt [rootlocalhost /]# 3.步骤1:创建文件并插入日期时间vi /tmp/newfile在vi编辑器中输入以下命令…

【Android】安卓四大组件之内容提供者(ContentProvider):从基础到进阶

你手机里的通讯录,存储了所有联系人的信息。如果你想把这些联系人信息分享给其他App,就可以通过ContentProvider来实现。。 一、什么是 ContentProvider ‌ContentProvider‌ 是 Android 四大组件之一,负责实现‌跨应用程序的数据共享与访问…

Vue-19-前端框架Vue之应用基础组件通信(二)

文章目录 1 v-model(父子相传)1.1 App.vue1.2 Father.vue1.2.1 v-model用在html标签上1.2.2 v-model用在html标签上(本质写法)1.2.3 v-model用在组件标签上1.2.4 v-model用在组件标签上(本质写法)1.3 MyInput(自定义的组件)1.4 修改modelValue1.4.1 Father.vue1.4.2 MyInput.vu…

宝塔下载pgsql适配spring ai

1.宝塔安装pgvector 1.先去github下载pgvectorpgvector/pgvector: Open-source vector similarity search for Postgres 2.把压缩包上传到系统文件的/temp下解压,重命名文件名为pgvector,之后命令操作 cd /tmp cd pgvector export PG_CONFIG/www/serv…

RK3568项目(八)--linux驱动开发之基础外设(上)

目录 一、引言 二、准备工作 ------>2.1、驱动加载/卸载命令 三、字符设备驱动开发 ------>3.1、驱动模块的加载和卸载 ------>3.2、外部模块编译模板 Makefile ------>3.3、cdev 四、LED驱动 ------>4.1、原理图 ------>4.2、驱动 五、设备树 -…

BUUCTF在线评测-练习场-WebCTF习题[GXYCTF2019]BabySQli1-flag获取、解析

解题思路打开靶场,题目提示是sql注入输入数据,判断下闭合11123报错:Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 1 at line 1报错提示…

“AI 曼哈顿计划”:科技竞赛还是人类挑战?

美国国会下属的经济与安全审查委员会已将“推动建立并资助一项堪比曼哈顿计划的通用人工智能研发项目”列为其对国会的核心建议之一,明确显示出对AI竞赛战略意义的高度重视。与此同时,美国能源部在近几个月中多次公开将人工智能的突破比作“下一场曼哈顿…

音频信号的预加重:提升语音清晰度

一、预加重介绍预加重是一种信号处理技术,主要用于增强音频信号中的高频成分。由于人类语音的频谱特性,尤其是在辅音和音调的表达上,高频成分对于语音的清晰度至关重要。然而,在录音和传输过程中,这些高频成分往往会受…

WebSocket实战:实现实时聊天应用 - 双向通信技术详解

目录一、WebSocket:实时通信的"高速公路"1.1 HTTP的短板:永远的"单相思"1.2 WebSocket的优势:真正的"双向对话"二、30分钟搭建聊天服务器2.1 环境准备2.2 WebSocket配置类2.3 核心消息处理器三、前端实现&…

宏集案例 | 基于CODESYS的自动化控制系统,开放架构 × 高度集成 × 远程运维

​​案例概况客户:MACS Sterilisationsanlagen GmbH(Ermafa Environmental Technologies GmbH 旗下) 应用场景:医疗与感染性废弃物的无害化处理控制系统应用产品:宏集Berghof高性能控制器设备(一&#xff0…

学习JNI 二

创建一个名为Learn1项目(Android Studio)。一、项目结构二、配置 build.gradlebuild.gradle.kts(:app)plugins {alias(libs.plugins.android.application)alias(libs.plugins.jetbrains.kotlin.android) }android {namespace "com.demo.learn1&quo…

基于Spring Boot+Vue的DIY手工社预约管理系统(Echarts图形化、腾讯地图API)

2.10 视频课程管理功能实现2.11手工互动(视频弹幕)2.8预约设置管理功能实现🎈系统亮点:Echarts图形化、腾讯地图API;文档包含功能结构图、系统架构图、用例图、实体属性图、E-R图。一.系统开发工具与环境搭建1.系统设计…