如何使用 Pandas 显示特定年份的星期几?
Pandas 是一个专为数据操作和分析而设计的开源 Python 库。
它提供了强大的数据结构,如 Series(一维标记数组)和 DataFrame(二维标记数组),可以处理不同类型的数据和操作,例如从各种文件格式读取和写入数据、合并、过滤、聚合和透视数据,以及处理丢失或重复的数据。
Pandas 还支持时间序列数据并提供广泛的数据可视化功能。它的易用性、多功能性和性能使其成为数据科学家和分析师进行探索性数据分析、数据清理和特征工程任务的热门选择。
众所周知,一年有 52 周。在我们的例子中,我们想知道某一年某一周的某一天的日期。 Pandas 对我们的问题非常有帮助,只需几行代码,它们就可以为我们提供所有日期。
语法
要在 Pandas 中显示特定年份的星期几,您需要遵循以下语法 -
range_of_dates = pandas.date_range(start, periods, freq) result = pandas.Series(range_of_dates) print(result)
该语法使用 pandas.date_range() 函数创建一个日期范围,并使用 pandas.Series() 函数使用生成的日期范围创建一个 Pandas 系列。
pandas.date_range() 函数接受三个参数 -
start − 范围的开始日期。
periods − 范围内的周期数。
freq − 范围的频率。
结果日期范围存储在 range_of_dates 变量中。然后使用 pandas.Series() 函数使用 range_of_dates 变量创建名为 result 的 Pandas 系列。
示例
此代码使用别名 pd 导入 Pandas 库。变量 day 和 yy 定义为字符串。然后,代码使用这些变量创建一个 52 周的日期范围,从 yy 变量中指定的年份的 1 月 1 日开始,频率为每周在 day 变量中指定的特定星期几。最后,我们得到了 2023 年星期一出现的所有日期。
具体来说,pd.date_range() 函数用于创建一个日期范围,起始日期设置为 yy+'-01-01',表示 yy 变量中指定的年份的 1 月 1 日。 periods 参数设置为 52,以创建为期 52 周的日期范围。freq 参数设置为 'W-'+(day[:3]).lower(),其中 (day[:3]).lower() 提取 day 中字符串的前三个字符并将其转换为小写,'W-' 表示以特定星期几结束的一周,从而得到在指定星期几的每周频率。
生成的日期范围存储在 range_of_dates 变量中,然后将其作为参数传递给 pd.Series() 函数以创建名为 result 的 Pandas 系列。然后使用 result 变量名称在输出中显示 result 变量。
import pandas as pd day = "monday" yy = "2023" range_of_dates = pd.date_range(yy+'-01-01', periods=52, freq=('W-'+(day[:3]).lower())) result = pd.Series(range_of_dates) print(result)
输出
0 2023-01-02 1 2023-01-09 2 2023-01-16 3 2023-01-23 4 2023-01-30 5 2023-02-06 6 2023-02-13 7 2023-02-20 8 2023-02-27 9 2023-03-06 10 2023-03-13 11 2023-03-20 12 2023-03-27 13 2023-04-03 14 2023-04-10 15 2023-04-17 16 2023-04-24 17 2023-05-01 18 2023-05-08 19 2023-05-15 20 2023-05-22 21 2023-05-29 22 2023-06-05 23 2023-06-12 24 2023-06-19 25 2023-06-26 26 2023-07-03 27 2023-07-10 28 2023-07-17 29 2023-07-24 30 2023-07-31 31 2023-08-07 32 2023-08-14 33 2023-08-21 34 2023-08-28 35 2023-09-04 36 2023-09-11 37 2023-09-18 38 2023-09-25 39 2023-10-02 40 2023-10-09 41 2023-10-16 42 2023-10-23 43 2023-10-30 44 2023-11-06 45 2023-11-13 46 2023-11-20 47 2023-11-27 48 2023-12-04 49 2023-12-11 50 2023-12-18 51 2023-12-25 dtype: datetime64[ns]
示例
此代码与上一个代码类似,但对变量 day 和 yr 做了一些更改。具体来说,现在将 day 设置为全部大写的"FRIDAY",将 year 设置为"2023"。
此代码还使用 pd.date_range() 函数创建了从 yr 变量中指定的年份的 1 月 1 日开始的日期范围,总共 52 个周期,频率为每周的特定日期(在本例中为星期五)。频率使用字符串格式 'W-'+(day[:3]).lower() 指定,该格式提取一天中字符串的前三个字符,使用 lower() 方法将其转换为小写,并附加到 'W-',表示特定星期几的每周频率。
结果日期范围存储在 range_of_dates 变量中,然后将其作为参数传递给 pd.Series() 函数以创建名为 result 的 Pandas 系列。最后,result 变量显示在输出中。
import pandas as pd day = "FRIDAY" yr = "2023" range_of_dates = pd.date_range(yr+'-01-01', periods=52, freq=('W-'+(day[:3]).lower())) result = pd.Series(range_of_dates) print(result)
输出
0 2023-01-06 1 2023-01-13 2 2023-01-20 3 2023-01-27 4 2023-02-03 5 2023-02-10 6 2023-02-17 7 2023-02-24 8 2023-03-03 9 2023-03-10 10 2023-03-17 11 2023-03-24 12 2023-03-31 13 2023-04-07 14 2023-04-14 15 2023-04-21 16 2023-04-28 17 2023-05-05 18 2023-05-12 19 2023-05-19 20 2023-05-26 21 2023-06-02 22 2023-06-09 23 2023-06-16 24 2023-06-23 25 2023-06-30 26 2023-07-07 27 2023-07-14 28 2023-07-21 29 2023-07-28 30 2023-08-04 31 2023-08-11 32 2023-08-18 33 2023-08-25 34 2023-09-01 35 2023-09-08 36 2023-09-15 37 2023-09-22 38 2023-09-29 39 2023-10-06 40 2023-10-13 41 2023-10-20 42 2023-10-27 43 2023-11-03 44 2023-11-10 45 2023-11-17 46 2023-11-24 47 2023-12-01 48 2023-12-08 49 2023-12-15 50 2023-12-22 51 2023-12-29 dtype: datetime64[ns]
结论
我们学习了如何使用 Pandas 显示特定年份的星期几。使用 Pandas 显示特定年份的星期几是一项有用的练习,它演示了如何生成具有特定频率的日期范围,并提供了对随时间变化的模式和趋势的洞察。凭借其直观而灵活的语法,Pandas 是任何处理时间序列数据的数据分析师或科学家的必备工具。