[英]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.