我有一个日期字符串,并希望将其转换为日期类型:
我已经尝试使用pd.to_datetime
与我想要的格式,但它是返回时间没有转换。
df = pd.DataFrame({
'date': ['2010-12-30 23:57:10+00:00', '2010-12-30 23:52:41+00:00','2010-12-30 23:43:04+00:00','2010-12-30 23:37:30+00:00','2010-12-30 23:31:39+00:00'],
'text' : ['El odontólogo Barreda, a un paso de quedar en …','Defederico es el nuevo refuerzo de Independien..','Israel: ex presidente Katzav declarado culpabl…'
, 'FMI estima que la recuperación asimétrica de l…','¿Quién fue el campeón argentino del año? Votá …']
})
df["new date"] =pd.to_datetime(df['date'], format="%Y-%m-%d")
这是返回的输出2010-12-30 23:57:10+00:00
我需要排除23:57:10+00:00
.
2条答案
按热度按时间6qftjkof1#
它是一个datetime 对象,所以需要保存时间信息,但是,这里有一个Period数据类型:它表示时间的 * 跨度 * 而不是 * 戳 *:
转换为 D 日周期以获得
注意到这些不是字符串;因此可以继续执行基于X1 MON 1X的操作。
但是,如果确实需要datetime类型,则可以
.normalize()
时间戳,以表明时间组件是无关紧要的,它们都设置为午夜:注意,在标准化之后,如果原始日期时间戳没有附加时区信息,即“+"之后的部分,则显示器通常不显示全零时间信息;在你的例子中,他们确实有,所以我们在输出中也看到了零,如果你想在这种情况下摆脱它,你可以链接
.dt.tz_convert(tz=None)
来摆脱时区信息,从而在输出中摆脱全零,尽管如此,输出是datetime类型的。最后,如果它完全是为了 * 显示 * 目的,那么我们可以使用
.strftime
将它们整形为所需的格式:正如您所看到的,数据类型是“object”,即这里的string,这将阻止基于日期时间的操作,例如,
df["new date"].dt.month
将不再像前两种选择那样工作。ovfsdjhp2#
要保留DatetimeIndex及其
dt
访问器,可以使用dt.normalize()
重置时间部分,然后使用dt.tz_convert
删除时区信息:产出