.dt.date跟,format = ‘%Y-%m-%d‘的区别

如果原来的date是2023/11/04 21:00,

nowcoder['date']=pd.to_datetime(nowcoder['date']).dt.date 
nowcoder['date']=pd.to_datetime(nowcoder['date'],format = '%Y-%m-%d')

这两行代码运行后分别会得到什么结果?

第一行代码 nowcoder['date']=pd.to_datetime(nowcoder['date']).dt.date 会将nowcoder['date']列中的每个元素转换为日期时间格式,然后使用.dt.date取出日期部分。所以,如果原来的date是"2023/11/04 21:00",那么运行这行代码后,nowcoder['date']列中对应的元素会变为日期对象"2023-11-04"。

.dt属性不仅可以用来取出日期部分,还可以用来取出其他的时间相关的信息。以下是一些常用的选项:

  • .dt.year:返回年份
  • .dt.month:返回月份
  • .dt.day:返回日期(月份中的哪一天)
  • .dt.hour:返回小时
  • .dt.minute:返回分钟
  • .dt.second:返回秒
  • .dt.weekday:返回星期几(0代表星期一,6代表星期日)
  • .dt.quarter:返回季度

这些属性都可以用来从日期时间对象中提取特定的信息。

第二行代码 nowcoder['date']=pd.to_datetime(nowcoder['date'],format = '%Y-%m-%d') 会将nowcoder['date']列中的每个元素按照’%Y-%m-%d’的格式转换为日期时间格式。所以,如果原来的date是"2023/11/04 21:00",那么运行这行代码后,由于原始数据与指定的格式不匹配,可能会导致错误。如果原始数据是"2023-11-04"这样的格式,那么运行这行代码后,nowcoder['date']列中对应的元素会变为日期时间对象"2023-11-04 00:00:00"。请注意,这里的时间部分默认为00:00:00。

format = '%Y-%m-%d'确实是用来指定日期的格式,也就是说它会把日期时间对象转换为指定的格式。但是,这并不意味着它会丢弃原始日期时间对象中的其他信息。

当你使用pd.to_datetime函数并指定format = '%Y-%m-%d'时,如果原始数据中包含了时间信息(例如"2023-11-04 21:00"),那么在转换过程中,时间信息会被保留下来,只不过在输出时不会显示出来。也就是说,转换后的日期时间对象实际上是"2023-11-04 21:00:00",只是当你打印或查看它时,由于你指定了格式为’%Y-%m-%d’,所以只会显示出"2023-11-04"。

而当你使用.dt.date属性时,它会真正地丢弃掉时间信息,只保留日期部分。也就是说,如果原始数据是"2023-11-04 21:00",那么使用.dt.date属性后,得到的将会是一个只包含日期信息的对象"2023-11-04"。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值