繁体   English   中英

熊猫-毫秒的日期时间格式

[英]Pandas - datetime format of milliseconds

我有以这种格式保存在熊猫中的时间字符串列表:

2743    2015-11-30-20-24-0-970
2744    2015-11-30-20-24-0-989
2745      2015-11-30-20-24-1-7
2746     2015-11-30-20-24-1-28

我需要将其转换为日期时间格式,但是当我这样做时:

pd.to_datetime(something['Date'],format="%Y-%m-%d-%H-%M-%S-%f")

我以这种格式获取数据:

2743   2015-11-30 20:24:00.970
2744   2015-11-30 20:24:00.989
2745   2015-11-30 20:24:01.700
2746   2015-11-30 20:24:01.280

但是最后两个的时间格式错误。 应该是这样的:

2745   2015-11-30 20:24:01.007
2746   2015-11-30 20:24:01.028

您知道我应该使用哪个参数吗?

在最后一个元素上使用矢量化的str.zfill填充零,您可以获得正确的结果:

In [52]:
import io
import pandas as pd
t="""2743    2015-11-30-20-24-0-970
2744    2015-11-30-20-24-0-989
2745      2015-11-30-20-24-1-7
2746     2015-11-30-20-24-1-28"""
df = pd.read_csv(io.StringIO(t), header=None, delim_whitespace=True, names=['id', 'date'])
df

Out[52]:
     id                    date
0  2743  2015-11-30-20-24-0-970
1  2744  2015-11-30-20-24-0-989
2  2745    2015-11-30-20-24-1-7
3  2746   2015-11-30-20-24-1-28

In [53]:
df['date'] = df['date'].str.rsplit('-',n=1).str[0] + '-' + df['date'].str.rsplit('-',n=1).str[-1].str.zfill(3)
df

Out[53]:
     id                    date
0  2743  2015-11-30-20-24-0-970
1  2744  2015-11-30-20-24-0-989
2  2745  2015-11-30-20-24-1-007
3  2746  2015-11-30-20-24-1-028

In [54]:    
pd.to_datetime(df['date'],format="%Y-%m-%d-%H-%M-%S-%f")

Out[54]:
0   2015-11-30 20:24:00.970
1   2015-11-30 20:24:00.989
2   2015-11-30 20:24:01.007
3   2015-11-30 20:24:01.028
Name: date, dtype: datetime64[ns]

所以关键是这一行:

df['date'].str.rsplit('-',n=1).str[0] + '-' + df['date'].str.rsplit('-',n=1).str[-1].str.zfill(3)

这将调用rsplit并获取最后一个元素,然后在这些元素上调用zfill ,然后再将其与字符串的其余部分重新连接起来以获取所需的内容。

In [57]:
df['date'].str.rsplit('-',n=1).str[-1].str.zfill(3)

Out[57]:
0    970
1    989
2    007
3    028
dtype: object

In [58]:
df['date'].str.rsplit('-',n=1).str[0] + '-' + df['date'].str.rsplit('-',n=1).str[-1].str.zfill(3)

Out[58]:
0    2015-11-30-20-24-0-970
1    2015-11-30-20-24-0-989
2    2015-11-30-20-24-1-007
3    2015-11-30-20-24-1-028
dtype: object

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM