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

CSDN 2024-08-13 10:35:02 阅读 56

目录

一、用法精讲

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、语法

<code># 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')code>

# 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')code>

# 261-3、时间序列数据的年度趋势分析

import pandas as pd

# 创建一个包含时间序列数据的DataFrame

data = pd.DataFrame({

'date': pd.date_range(start='2024-01-01', periods=12, freq='ME'),code>

'value': range(1, 13)

})

# 提取年份

data['year'] = data['date'].dt.year

# 计算每年的平均值

annual_average = data.groupby('year')['value'].mean()

print(annual_average, end='\n\n')code>

# 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')code>

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、语法

<code># 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')code>

# 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')code>

# 262-3、时间序列数据的月度趋势分析

import pandas as pd

# 创建一个包含时间序列数据的DataFrame

data = pd.DataFrame({

'date': pd.date_range(start='2024-01-01', periods=12, freq='ME'),code>

'value': range(1, 13)

})

# 提取月份

data['month'] = data['date'].dt.month

# 计算每月的平均值

monthly_average = data.groupby('month')['value'].mean()

print(monthly_average, end='\n\n')code>

# 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')code>

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、语法

<code># 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')code>

# 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')code>

# 263-3、时间序列数据的日趋势分析

import pandas as pd

# 创建一个包含时间序列数据的DataFrame

data = pd.DataFrame({

'date': pd.date_range(start='2024-01-01', periods=31, freq='D'),code>

'value': range(1, 32)

})

# 提取天数

data['day'] = data['date'].dt.day

# 计算每天的平均值

daily_average = data.groupby('day')['value'].mean()

print(daily_average, end='\n\n')code>

# 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')code>

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、语法

<code># 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')code>

# 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')code>

# 264-3、时间序列数据的小时趋势分析

import pandas as pd

# 创建一个包含时间序列数据的DataFrame

data = pd.DataFrame({

'time': pd.date_range(start='2024-01-01 00:00', periods=24, freq='h'),code>

'value': range(24)

})

# 提取小时数

data['hour'] = data['time'].dt.hour

# 计算每小时的平均值

hourly_average = data.groupby('hour')['value'].mean()

print(hourly_average, end='\n\n')code>

# 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')code>

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、语法

<code># 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')code>

# 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')code>

# 265-3、时间序列数据的分钟趋势分析

import pandas as pd

# 创建一个包含时间序列数据的DataFrame

data = pd.DataFrame({

'time': pd.date_range(start='2024-01-01 00:00', periods=60, freq='min'),code>

'value': range(60)

})

# 提取分钟数

data['minute'] = data['time'].dt.minute

# 计算每分钟的平均值

minute_average = data.groupby('minute')['value'].mean()

print(minute_average, end='\n\n')code>

# 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')code>

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、博客个人主页


声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。