Python酷库之旅-第三方库Pandas(066)

目录

一、用法精讲

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:

 

二、推荐阅读

1、Python筑基之旅
2、Python函数之旅
3、Python算法之旅
4、Python魔法之旅
5、博客个人主页
  • 15
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神奇夜光杯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值