目录
一、用法精讲
261、pandas.Series.dt.year属性
261-1、语法
261-2、参数
261-3、功能
261-4、返回值
261-5、说明
261-6、用法
261-6-1、数据准备
261-6-2、代码示例
261-6-3、结果输出
262、pandas.Series.dt.month属性
262-1、语法
262-2、参数
262-3、功能
262-4、返回值
262-5、说明
262-6、用法
262-6-1、数据准备
262-6-2、代码示例
262-6-3、结果输出
263、pandas.Series.dt.day属性
263-1、语法
263-2、参数
263-3、功能
263-4、返回值
263-5、说明
263-6、用法
263-6-1、数据准备
263-6-2、代码示例
263-6-3、结果输出
264、pandas.Series.dt.hour属性
264-1、语法
264-2、参数
264-3、功能
264-4、返回值
264-5、说明
264-6、用法
264-6-1、数据准备
264-6-2、代码示例
264-6-3、结果输出
265、pandas.Series.dt.minute属性
265-1、语法
265-2、参数
265-3、功能
265-4、返回值
265-5、说明
265-6、用法
265-6-1、数据准备
265-6-2、代码示例
265-6-3、结果输出
二、推荐阅读
1、Python筑基之旅
2、Python函数之旅
3、Python算法之旅
4、Python魔法之旅
5、博客个人主页
一、用法精讲
261、pandas.Series.dt.year属性
261-1、语法
# 261、pandas.Series.dt.year属性
pandas.Series.dt.year
The year of the datetime.
261-2、参数
无
261-3、功能
用于从包含日期时间数据的pandas.Series
中提取年份信息的工具,该属性能够将日期时间数据中的年份部分提取出来,并以整数形式返回。
261-4、返回值
返回的Series
对象的每个元素都是整数,表示对应日期的年份。
261-5、说明
使用场景:
261-5-1、数据分析:当你需要对数据进行按年份分组、汇总或者统计时,提取年份信息非常有用。例如,分析销售数据按年份的趋势。
261-5-2、时间序列分析:在处理时间序列数据时,可能需要从日期时间数据中提取年份来进行更深入的分析,例如查看不同年份的变化。
261-5-3、报告生成:如果需要生成包含年份的报告或图表,可以通过提取年份来轻松地将数据按照年份进行组织和展示。
261-6、用法
261-6-1、数据准备
无
261-6-2、代码示例
# 261、pandas.Series.dt.year属性
# 261-1、按年份统计订单数量
import pandas as pd
# 创建一个包含订单日期的Series
orders = pd.Series(pd.to_datetime(['2024-01-15','2023-06-30','2022-12-25','2023-03-15','2024-08-10'
]))
# 提取年份
years = orders.dt.year
# 计算每年的订单数量
order_counts = years.value_counts().sort_index()
print(order_counts, end='\n\n')# 261-2、按年份分析销售额
import pandas as pd
# 创建一个包含销售数据的DataFrame
data = pd.DataFrame({'date': pd.to_datetime(['2024-01-15', '2023-06-30', '2022-12-25','2023-03-15', '2024-08-10']),'sales': [100, 200, 150, 300, 250]
})
# 提取年份
data['year'] = data['date'].dt.year
# 按年份汇总销售额
yearly_sales = data.groupby('year')['sales'].sum()
print(yearly_sales, end='\n\n')# 261-3、时间序列数据的年度趋势分析
import pandas as pd
# 创建一个包含时间序列数据的DataFrame
data = pd.DataFrame({'date': pd.date_range(start='2024-01-01', periods=12, freq='ME'),'value': range(1, 13)
})
# 提取年份
data['year'] = data['date'].dt.year
# 计算每年的平均值
annual_average = data.groupby('year')['value'].mean()
print(annual_average, end='\n\n')# 261-4、按年份生成报告
import pandas as pd
import matplotlib.pyplot as plt
# 创建一个包含订单日期的Series
orders = pd.Series(pd.to_datetime(['2024-01-15', '2023-06-30', '2022-12-25','2023-03-15', '2024-08-10'
]))
# 提取年份
years = orders.dt.year
# 计算每年的订单数量
order_counts = years.value_counts().sort_index()
# 生成柱状图
order_counts.plot(kind='bar', color='skyblue')
plt.xlabel('Year')
plt.ylabel('Number of Orders')
plt.title('Number of Orders per Year')
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()
261-6-3、结果输出
# 261、pandas.Series.dt.year属性
# 261-1、按年份统计订单数量
# 2022 1
# 2023 2
# 2024 2
# Name: count, dtype: int64# 261-2、按年份分析销售额
# year
# 2022 150
# 2023 500
# 2024 350
# Name: sales, dtype: int64# 261-3、时间序列数据的年度趋势分析
# year
# 2024 6.5
# Name: value, dtype: float64# 261-4、按年份生成报告
# 见图1
图1:
262、pandas.Series.dt.month属性
262-1、语法
# 262、pandas.Series.dt.month属性
pandas.Series.dt.month
The month as January=1, December=12.
262-2、参数
无
262-3、功能
从datetime
数据中提取出月份,以整数形式表示(1表示一月,12表示十二月)。
262-4、返回值
返回一个整数序列,每个整数表示相应的月份。
262-5、说明
无
262-6、用法
262-6-1、数据准备
无
262-6-2、代码示例
# 262、pandas.Series.dt.month属性
# 262-1、按月份统计订单数量
import pandas as pd
# 创建一个包含订单日期的Series
orders = pd.Series(pd.to_datetime(['2024-01-15','2023-06-30','2022-12-25','2023-03-15','2024-08-10'
]))
# 提取月份
months = orders.dt.month
# 计算每月的订单数量
order_counts = months.value_counts().sort_index()
print(order_counts, end='\n\n')# 262-2、按月份分析销售额
import pandas as pd
# 创建一个包含销售数据的DataFrame
data = pd.DataFrame({'date': pd.to_datetime(['2024-01-15', '2023-06-30', '2022-12-25','2023-03-15', '2024-08-10']),'sales': [100, 200, 150, 300, 250]
})
# 提取月份
data['month'] = data['date'].dt.month
# 按月份汇总销售额
monthly_sales = data.groupby('month')['sales'].sum()
print(monthly_sales, end='\n\n')# 262-3、时间序列数据的月度趋势分析
import pandas as pd
# 创建一个包含时间序列数据的DataFrame
data = pd.DataFrame({'date': pd.date_range(start='2024-01-01', periods=12, freq='ME'),'value': range(1, 13)
})
# 提取月份
data['month'] = data['date'].dt.month
# 计算每月的平均值
monthly_average = data.groupby('month')['value'].mean()
print(monthly_average, end='\n\n')# 262-4、按月份生成报告
import pandas as pd
import matplotlib.pyplot as plt
# 创建一个包含订单日期的Series
orders = pd.Series(pd.to_datetime(['2024-01-15', '2023-06-30', '2022-12-25','2023-03-15', '2024-08-10'
]))
# 提取月份
months = orders.dt.month
# 计算每月的订单数量
order_counts = months.value_counts().sort_index()
# 生成柱状图
order_counts.plot(kind='bar', color='skyblue')
plt.xlabel('Month')
plt.ylabel('Number of Orders')
plt.title('Number of Orders per Month')
plt.xticks(ticks=range(12), labels=['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], rotation=45)
plt.tight_layout()
plt.show()
262-6-3、结果输出
# 262、pandas.Series.dt.month属性
# 262-1、按月份统计订单数量
# 1 1
# 3 1
# 6 1
# 8 1
# 12 1
# Name: count, dtype: int64# 262-2、按月份分析销售额
# month
# 1 100
# 3 300
# 6 200
# 8 250
# 12 150
# Name: sales, dtype: int64# 262-3、时间序列数据的月度趋势分析
# month
# 1 1.0
# 2 2.0
# 3 3.0
# 4 4.0
# 5 5.0
# 6 6.0
# 7 7.0
# 8 8.0
# 9 9.0
# 10 10.0
# 11 11.0
# 12 12.0
# Name: value, dtype: float64# 262-4、按月份生成报告
# 见图2
图2:
263、pandas.Series.dt.day属性
263-1、语法
# 263、pandas.Series.dt.day属性
pandas.Series.dt.day
The day of the datetime.
263-2、参数
无
263-3、功能
从datetime
数据中提取出天数,以整数形式表示(1表示一个月的第一天,31表示一个月的最后一天)。
263-4、返回值
返回一个整数序列,每个整数表示相应日期的天数。
263-5、说明
无
263-6、用法
263-6-1、数据准备
无
263-6-2、代码示例
# 263、pandas.Series.dt.day属性
# 263-1、按天数统计订单数量
import pandas as pd
# 创建一个包含订单日期的Series
orders = pd.Series(pd.to_datetime(['2024-01-15','2023-06-30','2022-12-25','2023-03-15','2024-08-10'
]))
# 提取天数
days = orders.dt.day
# 计算每个天数的订单数量
day_counts = days.value_counts().sort_index()
print(day_counts, end='\n\n')# 263-2、按天数分析销售额
import pandas as pd
# 创建一个包含销售数据的DataFrame
data = pd.DataFrame({'date': pd.to_datetime(['2024-01-15', '2023-06-30', '2022-12-25','2023-03-15', '2024-08-10']),'sales': [100, 200, 150, 300, 250]
})
# 提取天数
data['day'] = data['date'].dt.day
# 按天数汇总销售额
daily_sales = data.groupby('day')['sales'].sum()
print(daily_sales, end='\n\n')# 263-3、时间序列数据的日趋势分析
import pandas as pd
# 创建一个包含时间序列数据的DataFrame
data = pd.DataFrame({'date': pd.date_range(start='2024-01-01', periods=31, freq='D'),'value': range(1, 32)
})
# 提取天数
data['day'] = data['date'].dt.day
# 计算每天的平均值
daily_average = data.groupby('day')['value'].mean()
print(daily_average, end='\n\n')# 263-4、按天数生成报告
import pandas as pd
import matplotlib.pyplot as plt
# 创建一个包含订单日期的Series
orders = pd.Series(pd.to_datetime(['2024-01-15', '2023-06-30', '2022-12-25','2023-03-15', '2024-08-10'
]))
# 提取天数
days = orders.dt.day
# 计算每个天数的订单数量
day_counts = days.value_counts().sort_index()
# 生成柱状图
day_counts.plot(kind='bar', color='skyblue')
plt.xlabel('Day of Month')
plt.ylabel('Number of Orders')
plt.title('Number of Orders per Day of Month')
plt.xticks(ticks=range(1, 32), rotation=45)
plt.tight_layout()
plt.show()
263-6-3、结果输出
# 263、pandas.Series.dt.day属性
# 263-1、按天数统计订单数量
# 10 1
# 15 2
# 25 1
# 30 1
# Name: count, dtype: int64# 263-2、按天数分析销售额
# day
# 10 250
# 15 400
# 25 150
# 30 200
# Name: sales, dtype: int64# 263-3、时间序列数据的日趋势分析
# day
# 1 1.0
# 2 2.0
# 3 3.0
# 4 4.0
# 5 5.0
# 6 6.0
# 7 7.0
# 8 8.0
# 9 9.0
# 10 10.0
# 11 11.0
# 12 12.0
# 13 13.0
# 14 14.0
# 15 15.0
# 16 16.0
# 17 17.0
# 18 18.0
# 19 19.0
# 20 20.0
# 21 21.0
# 22 22.0
# 23 23.0
# 24 24.0
# 25 25.0
# 26 26.0
# 27 27.0
# 28 28.0
# 29 29.0
# 30 30.0
# 31 31.0
# Name: value, dtype: float64# 263-4、按天数生成报告
# 见图3
图3:
264、pandas.Series.dt.hour属性
264-1、语法
# 264、pandas.Series.dt.hour属性
pandas.Series.dt.hour
The hours of the datetime.
264-2、参数
无
264-3、功能
从datetime
数据中提取出小时,以整数形式表示(0表示午夜12点,23表示晚上11点)。
264-4、返回值
返回一个整数序列,每个整数表示相应时间的小时数。
264-5、说明
无
264-6、用法
264-6-1、数据准备
无
264-6-2、代码示例
# 264、pandas.Series.dt.hour属性
# 264-1、按小时统计事件数量
import pandas as pd
# 创建一个包含事件时间的Series
events = pd.Series(pd.to_datetime(['2024-01-15 08:30','2023-06-30 14:45','2022-12-25 08:30','2023-03-15 22:15','2024-08-10 14:00'
]))
# 提取小时数
hours = events.dt.hour
# 计算每个小时的事件数量
hour_counts = hours.value_counts().sort_index()
print(hour_counts, end='\n\n')# 264-2、按小时分析销售额
import pandas as pd
# 创建一个包含销售数据的DataFrame
data = pd.DataFrame({'time': pd.to_datetime(['2024-01-15 08:30', '2023-06-30 14:45', '2022-12-25 08:30','2023-03-15 22:15', '2024-08-10 14:00']),'sales': [100, 200, 150, 300, 250]
})
# 提取小时数
data['hour'] = data['time'].dt.hour
# 按小时汇总销售额
hourly_sales = data.groupby('hour')['sales'].sum()
print(hourly_sales, end='\n\n')# 264-3、时间序列数据的小时趋势分析
import pandas as pd
# 创建一个包含时间序列数据的DataFrame
data = pd.DataFrame({'time': pd.date_range(start='2024-01-01 00:00', periods=24, freq='h'),'value': range(24)
})
# 提取小时数
data['hour'] = data['time'].dt.hour
# 计算每小时的平均值
hourly_average = data.groupby('hour')['value'].mean()
print(hourly_average, end='\n\n')# 264-4、按小时生成报告
import pandas as pd
import matplotlib.pyplot as plt
# 创建一个包含事件时间的Series
events = pd.Series(pd.to_datetime(['2024-01-15 08:30', '2023-06-30 14:45', '2022-12-25 08:30','2023-03-15 22:15', '2024-08-10 14:00'
]))
# 提取小时数
hours = events.dt.hour
# 计算每个小时的事件数量
hour_counts = hours.value_counts().sort_index()
# 生成柱状图
hour_counts.plot(kind='bar', color='skyblue')
plt.xlabel('Hour of Day')
plt.ylabel('Number of Events')
plt.title('Number of Events per Hour of Day')
plt.xticks(ticks=range(0, 24), rotation=45)
plt.tight_layout()
plt.show()
264-6-3、结果输出
# 264、pandas.Series.dt.hour属性
# 264-1、按小时统计事件数量
# 8 2
# 14 2
# 22 1
# Name: count, dtype: int64# 264-2、按小时分析销售额
# hour
# 8 250
# 14 450
# 22 300
# Name: sales, dtype: int64# 264-3、时间序列数据的小时趋势分析
# hour
# 0 0.0
# 1 1.0
# 2 2.0
# 3 3.0
# 4 4.0
# 5 5.0
# 6 6.0
# 7 7.0
# 8 8.0
# 9 9.0
# 10 10.0
# 11 11.0
# 12 12.0
# 13 13.0
# 14 14.0
# 15 15.0
# 16 16.0
# 17 17.0
# 18 18.0
# 19 19.0
# 20 20.0
# 21 21.0
# 22 22.0
# 23 23.0
# Name: value, dtype: float64# 264-4、按小时生成报告
# 见图4
图4:
265、pandas.Series.dt.minute属性
265-1、语法
# 265、pandas.Series.dt.minute属性
pandas.Series.dt.minute
The minutes of the datetime.
265-2、参数
无
265-3、功能
从datetime
数据中提取出分钟,以整数形式表示(0表示整点,59表示接近下一个小时的最后一分钟)。
265-4、返回值
返回一个整数序列,每个整数表示相应时间的分钟数。
265-5、说明
无
265-6、用法
265-6-1、数据准备
无
265-6-2、代码示例
# 265、pandas.Series.dt.minute属性
# 265-1、按分钟统计事件数量
import pandas as pd
# 创建一个包含事件时间的Series
events = pd.Series(pd.to_datetime(['2024-01-15 08:30','2023-06-30 14:45','2022-12-25 08:15','2023-03-15 22:05','2024-08-10 14:30'
]))
# 提取分钟数
minutes = events.dt.minute
# 计算每分钟的事件数量
minute_counts = minutes.value_counts().sort_index()
print(minute_counts, end='\n\n')# 265-2、按分钟分析销售额
import pandas as pd
# 创建一个包含销售数据的DataFrame
data = pd.DataFrame({'time': pd.to_datetime(['2024-01-15 08:30', '2023-06-30 14:45', '2022-12-25 08:15','2023-03-15 22:05', '2024-08-10 14:30']),'sales': [100, 200, 150, 300, 250]
})
# 提取分钟数
data['minute'] = data['time'].dt.minute
# 按分钟汇总销售额
minute_sales = data.groupby('minute')['sales'].sum()
print(minute_sales, end='\n\n')# 265-3、时间序列数据的分钟趋势分析
import pandas as pd
# 创建一个包含时间序列数据的DataFrame
data = pd.DataFrame({'time': pd.date_range(start='2024-01-01 00:00', periods=60, freq='min'),'value': range(60)
})
# 提取分钟数
data['minute'] = data['time'].dt.minute
# 计算每分钟的平均值
minute_average = data.groupby('minute')['value'].mean()
print(minute_average, end='\n\n')# 265-4、按分钟生成报告
import pandas as pd
import matplotlib.pyplot as plt
# 创建一个包含事件时间的Series
events = pd.Series(pd.to_datetime(['2024-01-15 08:30', '2023-06-30 14:45', '2022-12-25 08:15','2023-03-15 22:05', '2024-08-10 14:30'
]))
# 提取分钟数
minutes = events.dt.minute
# 计算每分钟的事件数量
minute_counts = minutes.value_counts().sort_index()
# 生成柱状图
minute_counts.plot(kind='bar', color='lightcoral')
plt.xlabel('Minute of Hour')
plt.ylabel('Number of Events')
plt.title('Number of Events per Minute of Hour')
plt.xticks(ticks=range(0, 60, 5), rotation=45)
plt.tight_layout()
plt.show()
265-6-3、结果输出
# 265、pandas.Series.dt.minute属性
# 265-1、按分钟统计事件数量
# 5 1
# 15 1
# 30 2
# 45 1
# Name: count, dtype: int64# 265-2、按分钟分析销售额
# minute
# 5 300
# 15 150
# 30 350
# 45 200
# Name: sales, dtype: int64# 265-3、时间序列数据的分钟趋势分析
# minute
# 0 0.0
# 1 1.0
# 2 2.0
# 3 3.0
# 4 4.0
# 5 5.0
# 6 6.0
# 7 7.0
# 8 8.0
# 9 9.0
# 10 10.0
# 11 11.0
# 12 12.0
# 13 13.0
# 14 14.0
# 15 15.0
# 16 16.0
# 17 17.0
# 18 18.0
# 19 19.0
# 20 20.0
# 21 21.0
# 22 22.0
# 23 23.0
# 24 24.0
# 25 25.0
# 26 26.0
# 27 27.0
# 28 28.0
# 29 29.0
# 30 30.0
# 31 31.0
# 32 32.0
# 33 33.0
# 34 34.0
# 35 35.0
# 36 36.0
# 37 37.0
# 38 38.0
# 39 39.0
# 40 40.0
# 41 41.0
# 42 42.0
# 43 43.0
# 44 44.0
# 45 45.0
# 46 46.0
# 47 47.0
# 48 48.0
# 49 49.0
# 50 50.0
# 51 51.0
# 52 52.0
# 53 53.0
# 54 54.0
# 55 55.0
# 56 56.0
# 57 57.0
# 58 58.0
# 59 59.0
# Name: value, dtype: float64# 265-4、按分钟生成报告
# 见图5
图5: