当我将数据导入mongodb时,我得到以下信息:
_id:object("603678958a6eade21c0790b8")
id1:3758
date2:2010-01-01T00:00:00.000+00:00
time3:1900-01-01T00:05:00.000+00:00
date4 :2009-12-31T00:00:00.000+00:00
time5:1900-01-01T19:05:00.000+00:00
id6 :2
id7:-79.09
id8:35.97
id9:5.5
id10:0
id11:-99999
id12 :0
id13 :-9999
c14:"U"
id15:0
id16:99
id17:0
id18:-99
id19:-9999
id20:33
id21:0
id22:-99
id23:0
理想情况是这样的:
_id:object("603678958a6eade21c0790b8")
id1:3758
date2:2010-01-01
time3:00:05:00
date4 :2009-12-31
time5:19:05:00
id6 :2
id7:-79.09
id8:35.97
id9:5.5
id10:0
id11:-99999
id12 :0
id13 :-9999
c14:"U"
id15:0
id16:99
id17:0
id18:-99
id19:-9999
id20:33
id21:0
id22:-99
id23:0
我用于将列date2、date4、time3、time5转换为日期和时间的代码如下:
df['date4'] = df['date4'].astype('datetime64[ns]')
df['date2'] = df['date2'].astype('datetime64[ns]')
df['time3'] = df['time3'].apply(lambda x:datetime.datetime.strptime(x[0]+x[1]+":"+x[2]+x[3], '%H:%M'))
df['time5'] = df['time5'].apply( lambda x: datetime.datetime.strptime(x[0] + x[1] + ":" + x[2] + x[3], '%H:%M'))
我尝试了一些其他的方法,比如datetime.datetime,但似乎没有任何效果 有人知道我该怎么解决吗
strptime
从字符串创建datetime对象strftime
通过从日期时间创建字符串来实现相反的操作实际上,由于您有一个字符串,所以您需要同时使用这两个对象,然后您将创建一个datetime对象,然后以字符串的形式再次解析它,但要使用所需的格式
如果您有Python3.7,那么可以使用
datetime.datetime.fromisoformat
将字符串转换为datetime对象你可以阅读更多关于How to parse an isoformat to a datatime object
输出:
要获得更可读的代码,可以像这样导入包:
from datetime import datetime
我个人习惯于使用
arrow
包来操纵日期。 以下是此软件包的代码:提供相同的输出
相关问题 更多 >
编程相关推荐