Python日期抽取——df_dt.dt.weekday与df_dt.weekday()的区别

本文探讨了Python中DataFrame列中日期处理时,使用df_dt.dt.weekday与df_dt.weekday()两种方法的区别。尽管两者都用于抽取日期的星期几信息,但df_dt.weekday适用于list类型数据,而df_dt.dt.weekday则适用于Series类型数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

df_dt.dt.weekday和df_dt.weekday()的区别

df_dt.dt.weekday和df_dt.weekday的作用都是一样抽取日期信息。

区别在于处理数据类型不同

df_dt.weekday处理list类型

import pandas as pd
from pandas import to_datetime
#li=["2020/04/22 22:11:20","2020/04/26 22:11:20"]
li="2020/04/26 22:11:20"
df_dt = to_datetime(li, format="%Y/%m/%d %H:%M:%S")
print(df_dt)
y=df_dt.year
s=df_dt.second
m=df_dt.minute
h=df_dt.hour
d=df_dt.day
M=df_dt.month
w=df_dt.weekday()  #0-6
print("年:",y)
print("月:",M)
print("日:",d)
print("时:",h)
print("分:",m)
print("秒:",s)
print("周几:",w+1)

结果:

df_dt.dt.weekday,处理Series类型

import pandas as pd
from pandas import 
### 处理时间周期数据的One-Hot编码 对于时间周期数据,在机器学习中的处理方式可以通过将这些数据转换成适合模型理解的形式来实现。具体到One-Hot编码的应用上,可以考虑如下方法: 当面对具有循环性质的时间特征(如小时、星期几等),直接应用简单的数值映射可能无法有效捕捉其内在模式。例如,“23点”和“0点”的实际距离并不大,但在简单整数表示下却相隔甚远。因此,采用One-Hot编码能够更好地保留这类信息。 通过`pandas.get_dummies()`函数可方便地完成这一过程[^2]。此函数会自动识别输入DataFrame中的分类变量并为之创建新的二进制列,每列表示原始类别之一的存在否。对于时间序列而言,则意味着每一个独特的时间单位都会被转化为独立的一列布尔值向量。 下面是一个具体的Python代码实例展示如何针对日期时间字段执行One-Hot编码操作: ```python import pandas as pd # 创建样本数据集 df = pd.DataFrame({ 'datetime': ['2021-06-01 08:00', '2021-06-01 09:00', '2021-06-01 17:00'] }) # 将字符串类型的日期时间解析为Datetime对象 df['datetime'] = pd.to_datetime(df['datetime']) # 提取时间和周几作为新特性 df['hour'] = df['datetime'].dt.hour df['dayofweek'] = df['datetime'].dt.dayofweek # 对提取出的时间部分做One-Hot编码 df_encoded = pd.get_dummies(df[['hour', 'dayofweek']], prefix=['hour', 'weekday']) print(df_encoded) ``` 上述代码片段展示了怎样从给定的数据集中抽取时间成分,并对其进行One-Hot编码转换。最终得到的结果表中包含了多个新增加的指示器变量,它们共同构成了原有时序特性的离散化表达形式。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值