【发布时间】:2022-12-04 08:00:06
【问题描述】:
这有什么问题?
pd.to_datetime('2022-01-01',unit='D')
如果我在没有单位的情况下这样做
pd.to_datetime('2022-01-01')
没有出现错误。然而,代替标准单位ns我更想要D。
【问题讨论】:
标签: python pandas parsing timestamp
这有什么问题?
pd.to_datetime('2022-01-01',unit='D')
如果我在没有单位的情况下这样做
pd.to_datetime('2022-01-01')
没有出现错误。然而,代替标准单位ns我更想要D。
【问题讨论】:
标签: python pandas parsing timestamp
代码中的错误是 pd.to_datetime() 函数的 unit 参数需要一个表示时间单位的字符串,但您已将整数值“D”传递给它。在这种情况下,该函数将尝试将整数值解释为字符串并将引发 TypeError,因为它无法将整数转换为有效的时间单位。
要修复此错误,您需要向 unit 参数传递一个字符串值而不是整数。例如,您可以使用以下代码指定 D 时间单位:
pd.to_datetime('2022-01-01',unit='D')
或者您可以使用“天”字符串来指定相同的时间单位:
pd.to_datetime('2022-01-01',unit='days')
无论哪种情况,pd.to_datetime() 函数都会正确解释时间单位并将日期字符串转换为日期时间对象。值得注意的是,pd.to_datetime() 函数的默认时间单位是'ns',代表纳秒,所以如果你不指定时间单位,函数将使用这个默认值。
【讨论】:
问题是 pandas.to_datetime() 函数中的 unit 参数指定了输入日期/时间数据的单位,而不是输出格式。
要指定生成的日期时间对象的输出格式,您可以改用格式参数。
dt = pd.to_datetime('2022-01-01', format='%Y-%m-%d')
【讨论】: