• 17. Series.dt.month-提取日期数据中的月份信息


    【目录】


    【正文】

    17. Series.dt.month-提取日期数据中的月份信息

    学习时间:30分钟。

    1. 知识回顾-创建一个Series对象

    • pandas库的核心数据结构是两种类型的数据对象:Series对象和DataFrame对象。
    • Series对象是一维数组。
    • DataFrame对象是二维数组。

    创建一个Series对象:

    【语法】

    pd.Series(data, index)
    
    • 1

    【参数】

    • pd是库名。
    • .英文小圆点。库名后接一个小圆点表示调用。
    • Series类名。
    • data是必需参数,表示要传递的数据。
    • index是可选参数,用于自定义行索引。

    【课堂练习】

    创建一个Series对象,存储以下3个数据:
    2021-01-01
    2022-02-02
    2023-03-03

    【代码示例】

    # 导入pandas库并简写为pd
    import pandas as pd 
    
    data =['2021-01-01', '2022-02-02', '2023-03-03']
    
    s1 = pd.Series(data)
    print(s1)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    【终端输出】

    0    2021-01-01
    1    2022-02-02
    2    2023-03-03
    dtype: object
    
    • 1
    • 2
    • 3
    • 4

    【备注】

    以上知识点可以参加下面的链接:

    2. Series对象-一维数据

    学习就是一个从陌生到熟悉的过程,重复的次数多了,它就是你的了。

    2. 知识回顾-pd.to_datetime()将数据转换为pandas中的日期时间格式

    【作用】

    pd.to_datetime()函数是pandas库中的一个函数,用于将输入的日期时间转换为pandas中的日期时间格式。

    【语法】

    pd.to_datetime(arg, format)
    
    • 1
    • pd库名,是pandas库的简写。
    • 英文小圆点.
    • to_datetime函数名,理解为转换成日期格式的函数。

    【参数】

    • arg :需要转换为日期时间格式的参数,可以是字符串、列表、数组、Series、DataFrame等。
    • format:可选参数,默认值为None,表示输入日期时间的格式。如果不指定,则会尝试自动推断格式。

    【课堂练习】

    将上面的Series对象转换为日期格式。

    【代码示例】

    # 导入pandas库并简写为pd
    import pandas as pd 
    
    data =['2021-01-01', '2022-02-02', '2023-03-03']
    
    # pd.Series(data, index)创建一个Series对象
    s1 = pd.Series(data)
    
    # pd.to_datetime(arg, format)转换为日期时间格式
    data = pd.to_datetime(s1)
    
    print(data)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    【终端输出】

    0   2021-01-01
    1   2022-02-02
    2   2023-03-03
    dtype: datetime64[ns]
    
    • 1
    • 2
    • 3
    • 4

    3. 实例化类相关知识

    在面向对象编程中,类是一个模板,而对象则是根据这个模板创建出来的具体实体。

    通过实例化,我们可以使用类中定义的属性和方法来完成相应的操作。

    【创建对象语法】

    对象名 = 类名()

    • 等号的左边是我们给创建对象起的名字。

    • 等号右边写类名,表示这个对象是根据这个类生产出来的。

    • 类名后紧跟一对英文圆括号( )

    【查看对象属性语法】

    对象名.属性名

    属性是定义在类里的变量。

    4. Series.dt.month是什么?

    • Series.dt.yaer是pandas库中Series对象的一个属性,用于获取Series对象中日期时间值的年份
    • Series.dt.month是pandas库中Series对象的一个属性,用于获取Series对象中日期时间值的月份
    • Series.dt.day是pandas库中Series对象的一个属性,用于获取Series对象中日期时间值的

    5. 如何使用Series.dt.month?

    首先,我们需要导入Pandas库:

    import pandas as pd
    
    • 1

    接下来,我们可以创建一个包含日期时间数据的Series对象:

    # 语法:pd.Series(data, index)
    dates = pd.Series(['2021-01-01', '2022-02-02', '2023-03-03'])
    
    • 1
    • 2

    然后将Series对象转换为日期时间类型:

    # 语法:pd.to_datetime(arg, format)
    s = pd.to_datetime(dates)
    
    • 1
    • 2

    最后使用Series.dt获取日期属性:

    # 语法:Series.dt.month
    # s是一个Series对象,是对象名
    # dt是Series对象的时间属性,是属性名
    print("提取年份值:")
    print(s.dt.year)  # 输出:0    2021
                      #      1    2022
                      #      2    2023
                      #      dtype: int64
    print("提取月份值:")
    print(s.dt.month) # 输出:0    1
                      #      1    2
                      #      2    3
                      #      dtype: int64
    print("提取日值:")
    print(s.dt.day)   # 输出:0    1
                      #      1    2
                      #      2    3
                      #      dtype: int64
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    【终端输出】

    提取年份值:
    0    2021
    1    2022
    2    2023
    dtype: int64
    提取月份值:
    0    1
    1    2
    2    3
    dtype: int64
    提取日值:
    0    1
    1    2
    2    3
    dtype: int64
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    6. Series.dt.month的语法

    【查看对象属性语法】

    对象名.属性名

    Series.dt.month
    
    • 1
    • Series表示要操作的Series对象,是对象名。
    • dt是Series对象的时间属性,是属性名。
    • 该时间属性有 year(年)、month(月)、day(日)等多个值。
    • month表示要提取的具体时间月份值,可以替换成year或day

    7. 返回值

    Series对象中的数据必须为日期时间类型,否则会报错。

    Series.dt.month返回的是一个新的Series对象,不会修改原有的Series对象。

    8. 实操练习

    【目标任务】

    提供一个名为销售表.csv的表。

    任务1:查看其日期列的数据类型。

    任务2:将日期列的数据类型转换为日期类型。

    任务3:提取日期列数据的日值。

    【代码示例】

    # 导入pandas库并简写为pd
    import pandas as pd
    
    # 文件的绝对路径
    file = r"D:\安迪笔记\4.数据分析\17\销售表.csv"
    
    # 调用函数:库名.函数名()
    # pd是库名
    # read_excel是函数名
    # io参数=file,file是路径
    df = pd.read_csv(file)
    
    print("*****查看DataFrame每一列的数据类型*****",)
    df.info()
    print('\n')
    
    print("*****查看日期列数据*****")
    print(df["日期"],'\n')
    
    # 将`日期`列的数据类型转换为日期类型
    data = pd.to_datetime(df["日期"], format = '%Y-%m-%d')
    
    print("*****提取日期数据中的日值*****")
    day_data = data.dt.day
    
    print(day_data)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    【终端输出】

    *****查看DataFrame每一列的数据类型*****
    
    RangeIndex: 14 entries, 0 to 13
    Data columns (total 6 columns):
     #   Column  Non-Null Count  Dtype 
    ---  ------  --------------  ----- 
     0   订单编号    14 non-null     object
     1   日期      14 non-null     object
     2   省       14 non-null     object
     3   订单量     14 non-null     int64 
     4   单价      14 non-null     int64 
     5   销售额     14 non-null     int64 
    dtypes: int64(3), object(3)
    memory usage: 800.0+ bytes
    
    
    *****查看日期列数据*****
    0      2020-1-1
    1      2020-1-2
    2      2020-1-3
    3      2020-1-4
    4      2020-1-5
    5      2020-1-6
    6      2020-1-7
    7      2020-1-8
    8      2020-1-9
    9     2020-1-10
    10    2020-1-11
    11    2020-1-12
    12    2020-1-13
    13    2020-1-14
    Name: 日期, dtype: object 
    
    *****提取日期数据中的日值*****
    0      1
    1      2
    2      3
    3      4
    4      5
    5      6
    6      7
    7      8
    8      9
    9     10
    10    11
    11    12
    12    13
    13    14
    Name: 日期, dtype: int64
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49

    9. 总结

    在这里插入图片描述

  • 相关阅读:
    c++ 原子变量-Memory fence
    NR覆盖增强方案及标准化进展
    SpringBoot集成mysql-connector-java数据库驱动
    算法68-线段树
    基于C#+WPF编写的调用讯飞星火大模型工具
    Libuv实现帧率控制
    解读uvm_config_db中的set和get方法
    c# 异步进阶———— paralel [二]
    基于Spring Boot与Vue的智能房产匹配平台+文档
    [UEFI]EFI_DEVICE_PATH_PROTOCOL 结构体初始化的一个例子
  • 原文地址:https://blog.csdn.net/weixin_63986098/article/details/134452387