Python数据分析和数据处理库Pandas(日期数据处理初识)
目录
二.时间属性访问器对象Series.dt,获取日期数据的年月日星期
一.to_datetime()进行日期格式转换
1.参数说明
|
参数名 |
说明 |
|
arg |
要转换的日期时间数据,核心输入。支持字符串、数字(时间戳)、列表、Series、DataFrame 等多种格式。 |
|
errors |
解析失败时的处理方式。 - - - |
|
dayfirst |
解析日期时是否优先解析 “日”。 对类似 就是用来区分 |
|
yearfirst |
解析日期时是否优先解析 “年”。 对类似 当日期字符串是 '2010/1/4' 这种形式,由于年份是 4 位数字,pandas 能很清晰地识别出这是年份,所以即使 yearfirst 为 False,也不会影响其正确解析 |
|
utc |
是否将解析结果转为 UTC 时区。 设为 若原数据含时区信息,会自动转换。 |
|
format |
自定义日期解析格式,用于处理非标准格式的字符串。 格式符遵循 |
|
exact |
是否要求 - - |
|
unit |
时间戳的单位,用于解析数字类型的时间戳。 支持 |
|
infer_datetime_format |
是否自动推断日期字符串的格式,提升解析速度。 设为 |
|
origin |
时间戳的基准时间,用于将数字转为日期。 默认 |
|
cache |
是否缓存解析结果,提升重复调用时的性能。 默认 |
2.将字符串字段转换为日期类型
import pandas as pd
df = pd.DataFrame({"gmv": [100, 200, 300, 400],
"trade_date": ["2025-01-06", "2023-10-31", "2023-12-31", "2023-01-05"]})
df["ymd"] = pd.to_datetime(df["trade_date"])
print(df)
print(df["ymd"].dtype)
运行结果:

二.时间属性访问器对象Series.dt,获取日期数据的年月日星期
1.获取年月日
import pandas as pd
df = pd.DataFrame({"gmv": [100, 200, 300, 400],
"trade_date": ["2025-01-06", "2023-10-31", "2023-12-31", "2023-01-05"]})
df["ymd"] = pd.to_datetime(df["trade_date"])
df["yy"], df["mm"], df["dd"] = df["ymd"].dt.year, df["ymd"].dt.month, df["ymd"].dt.day
print(df)
运行结果:

2.获取星期
import pandas as pd
df = pd.DataFrame({"gmv": [100, 200, 300, 400],
"trade_date": ["2025-01-06", "2023-10-31", "2023-12-31", "2023-01-05"]})
df["ymd"] = pd.to_datetime(df["trade_date"])
df["week"] = df["ymd"].dt.day_name()
print(df)
运行结果:

3.获取日期所在季度
import pandas as pd
df = pd.DataFrame({"gmv": [100, 200, 300, 400],
"trade_date": ["2025-01-06", "2023-10-31", "2023-12-31", "2023-01-05"]})
df["ymd"] = pd.to_datetime(df["trade_date"])
df["quarter"] = df["ymd"].dt.quarter
print(df)
运行结果:

4.判断日期是否月底年底
import pandas as pd
df = pd.DataFrame({"gmv": [100, 200, 300, 400],
"trade_date": ["2025-01-06", "2023-10-31", "2023-12-31", "2023-01-05"]})
df["ymd"] = pd.to_datetime(df["trade_date"])
df["mend"] = df["ymd"].dt.is_month_end
df["yend"] = df["ymd"].dt.is_year_end
print(df)
运行结果:

三 .to_period()获取统计周期
freq:这是 to_period() 方法最重要的参数,用于指定要转换的时间周期频率
常见的取值如下:
- "D":按天周期,例如 2024-01-01 会转换为 2024-01-01 这个天的周期。
- "W":按周周期,通常以周日作为一周的结束,比如日期落在某一周内,就会转换为该周的周期表示。
- "M":按月周期,像 2024-05-15 会转换为 2024-05。
- "Q":按季度周期,一年分为四个季度,日期会转换到对应的季度周期,例如 2024Q2 。
- "A" 或 "Y":按年周期,如 2024-07-20 会转换为 2024 。
import pandas as pd
import numpy as np
df = pd.DataFrame({"gmv": [100, 200, 300, 400],
"trade_date": ["2025-01-06", "2023-10-31", "2023-12-31", "2023-01-05"]})
df["ymd"] = pd.to_datetime(df["trade_date"])
df["ystat"] = df["ymd"].dt.to_period("Y")
df["mstat"] = df["ymd"].dt.to_period("M")
df["qstat"] = df["ymd"].dt.to_period("Q")
df["wstat"] = df["ymd"].dt.to_period("W")
print(df)
运行结果:
更多推荐




所有评论(0)