Pandas 学习(数学建模篇)

发布于:2025-07-10 ⋅ 阅读:(27) ⋅ 点赞:(0)

今天学习数学建模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    10
        2 2023-02-01    A001     8
        5 2023-03-20    A001    15
        --------------------
        分组键: A002
             日期     单品编码  销售量
        1 2023-01-15    A002     5
        4 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。

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


网站公告

今日签到

点亮在社区的每一天
去签到