我在 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
通过+
连接字符串的解决方案:
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
关于python - 替换 DataFrame 中时间戳的日期部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66685206/