繁体   English   中英

将日期时间转换为 int 秒微秒

[英]Convert datetime to int seconds microseconds

我有一系列字符串,如'1970-01-01 00:00:00.000002913' 我怎样才能转换这个系列以获得“。”之后的整数数字。 2913 谢谢大家!!

您可以使用pandas.Series.dt.nanosecond / microseconds

s = pd.Series(['1970-01-01 00:00:00.000002913'], dtype='datetime64[ns]')
s.dt.microsecond*1000+s.dt.nanosecond

输出:

0    2913
dtype: int64

如果你有一个像你展示的那样由字符串组成的熊猫系列。 我相信最有效的解决方案是使用列表理解并将其分配给一个新系列,例如:

df['Microsecond'] = [x.split('.')[1] for x in list_of_values]

但是,如果您想要更像熊猫的方法,那么您可以尝试使用:

df['Microsecond'] = df['date'].str.split('.').str[0].astype(int)

为什么列表理解方法有效? 因为对于单个值,您可以使用int和 `.split('.') 来完成请求。

int('1970-01-01 00:00:00.000002913'.split('.')[1])

返回:

2913

如果你只有一个字符串,那么只需解析它:

s = "1970-01-01 00:00:00.000002913"
value = int(s.rsplit(".", 1)[1])

str.rsplit从右边开始拆分字符串,作为参数拆分需要多次,所以rsplit(".", 1)做了最少的工作。

然后您只需将其转换为int

暂无
暂无

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

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