python - 将具有一年中某一天的字符串转换为日期时间
问题描述
我有一个字符串列,如下所示:
2018-24 7:10:0
2018-8 12:1:20
2018-44 13:55:19
您看到的 24、8、44 是一年中的某一天,而不是日期。
如何将其转换为以下格式的日期时间列?
2018-01-24 07:10:00
2018-01-08 12:01:20
2018-02-13 13:55:19
我找不到与一年中的转换日期相关的任何内容?
解决方案
您需要格式字符串'%Y-%j %H:%M:%S'
In[53]:
import datetime as dt
dt.datetime.strptime('2018-44 13:55:19', '%Y-%j %H:%M:%S')
Out[53]: datetime.datetime(2018, 2, 13, 13, 55, 19)
%j
是一年中的一天
对于pandas
:
In[59]:
import pandas as pd
import io
t="""2018-24 7:10:0
2018-8 12:1:20
2018-44 13:55:19"""
df = pd.read_csv(io.StringIO(t), header=None, names=['datetime'])
df
Out[59]:
datetime
0 2018-24 7:10:0
1 2018-8 12:1:20
2 2018-44 13:55:19
使用pd.to_datetime
并传递format
参数:
In[60]:
df['new_datetime'] = pd.to_datetime(df['datetime'], format='%Y-%j %H:%M:%S')
df
Out[60]:
datetime new_datetime
0 2018-24 7:10:0 2018-01-24 07:10:00
1 2018-8 12:1:20 2018-01-08 12:01:20
2 2018-44 13:55:19 2018-02-13 13:55:19
推荐阅读
- python - Skimage imread 返回 img_arrayndarray;有什么属性?
- ruby-on-rails - 从 Rails 应用程序每小时运行 rb 文件的选项
- ios - Obj-C - 选择表格视图时数组返回空(有时)?
- r - Rshiny renderRHandsontable如何根据表格一列中的值更新表格
- google-api - 尝试在不使用 client_secret.json 文件的情况下让服务器到服务器身份验证为 GoogleAPI 工作
- vhdl - 我的 VHDL 有限状态机有问题
- c# - Stepping in to json weather data
- c - 在树莓派中使用 c/c++ 和 i2c 从特定寄存器(fifo)读取数据块
- gevent - APScheduler 和 zerorpc 不兼容
- javascript - 函数内的 if 语句 - 与全局范围的关系