python - 替换DataFrame中时间戳的日期部分
问题描述
我在 DataFrame df 中有两列:
date time
5/25/2020. 5/25/2020 11:00:28 AM
5/6/2021. 7/7/2021. 11:00:28 AM
现在我想将新列创建为reference_time,它将具有日期列的日期部分和列时间的时间部分,并将时区附加为美国/中部。像这样:
date time reference_time
5/25/2020. 5/25/2020 11:00:28 AM. 5/25/2021 11:00:28 AM US/Central
5/6/2021. 7/7/2021. 11:10:28 AM 5/6/2021 11:10:28 US/Central
有人可以帮助我如何干净地实现这一目标吗?谢谢。
解决方案
to_datetime
使用和的日期时间解决方案Series.dt.tz_localize
:
df['reference_time'] = (pd.to_datetime(df['date'] + ' ' + df['time'].str.split(n=1).str[1])
.dt.tz_localize('US/Central'))
print (df)
date time reference_time
0 5/25/2020 5/25/2020 11:00:28 AM 2020-05-25 11:00:28-05:00
1 5/6/2021 7/7/2021 11:00:28 AM 2021-05-06 11:00:28-05:00
join by 字符串的解决方案+
:
df['reference_time'] = df['date'] + ' ' + df['time'].str.split(n=1).str[1] + ' US/Central'
print (df)
date time reference_time
0 5/25/2020 5/25/2020 11:00:28 AM 5/25/2020 11:00:28 AM US/Central
1 5/6/2021 7/7/2021 11:00:28 AM 5/6/2021 11:00:28 AM US/Central
如果两列中已有日期时间:
df['reference_time'] = ((df['date'] + pd.to_timedelta(df['time'].dt.strftime('%H:%M:%S')))
.dt.tz_localize('US/Central'))
print (df)
date time reference_time
0 2020-05-25 2020-05-25 11:00:28 2020-05-25 11:00:28-05:00
1 2021-05-06 2021-07-07 11:00:28 2021-05-06 11:00:28-05:00
推荐阅读
- data-structures - 文字冒险游戏中的位置/房间系统
- javascript - React 组件内部的增量计数器 [hook?]
- javascript - 我的联系表格的电子邮件中未定义的数据
- swift - Cocoa:在 Swift 中保存时捕获屏幕并缩放图像
- swiperjs - swiperjs 创意效果参数不透明度语法错误
- java - 如果接口中不相关的默认方法被显式实例化,为什么不能实现它们?
- excel - Excel Userform 编码修改
- reactjs - 已解决:Textfield onChange 不适用于 react 和 MobX
- swift - RxSwift:链接流的问题
- flutter - Flutter 使页面退出过渡动态/可变