【目录】
文章目录
- 17. Series.dt.month-提取日期数据中的月份信息
- 1. 知识回顾-创建一个Series对象
- 2. 知识回顾-pd.to_datetime()将数据转换为pandas中的日期时间格式
- 3. 实例化类相关知识
- 4. Series.dt.month是什么?
- 5. 如何使用Series.dt.month?
- 6. Series.dt.month的语法
- 7. 返回值
- 8. 实操练习
- 9. 总结
【正文】
17. Series.dt.month-提取日期数据中的月份信息
学习时间:30分钟。
1. 知识回顾-创建一个Series对象
- pandas库的核心数据结构是两种类型的数据对象:
Series
对象和DataFrame
对象。 Series
对象是一维数组。DataFrame
对象是二维数组。
创建一个Series对象:
【语法】
pd.Series(data, index)
【参数】
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)
【终端输出】
0 2021-01-01
1 2022-02-02
2 2023-03-03
dtype: object
【备注】
以上知识点可以参加下面的链接:
2. Series对象-一维数据
学习就是一个从陌生到熟悉的过程,重复的次数多了,它就是你的了。
2. 知识回顾-pd.to_datetime()将数据转换为pandas中的日期时间格式
【作用】
pd.to_datetime()函数
是pandas库中的一个函数,用于将输入的日期时间转换为pandas中的日期时间格式。
【语法】
pd.to_datetime(arg, format)
- 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)
【终端输出】
0 2021-01-01
1 2022-02-02
2 2023-03-03
dtype: datetime64[ns]
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
接下来,我们可以创建一个包含日期时间数据的Series对象:
# 语法:pd.Series(data, index)
dates = pd.Series(['2021-01-01', '2022-02-02', '2023-03-03'])
然后将Series对象转换为日期时间类型:
# 语法:pd.to_datetime(arg, format)
s = pd.to_datetime(dates)
最后使用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
【终端输出】
提取年份值:
0 2021
1 2022
2 2023
dtype: int64
提取月份值:
0 1
1 2
2 3
dtype: int64
提取日值:
0 1
1 2
2 3
dtype: int64
6. Series.dt.month的语法
【查看对象属性语法】
对象名.属性名
Series.dt.month
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.dayprint(day_data)
【终端输出】
*****查看DataFrame每一列的数据类型*****
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 14 entries, 0 to 13
Data columns (total 6 columns):# Column Non-Null Count Dtype
--- ------ -------------- ----- 0 订单编号 14 non-null object1 日期 14 non-null object2 省 14 non-null object3 订单量 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