Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 转换';%m/%d/%Y';字符串索引转换为日期时间索引_Python_Pandas - Fatal编程技术网

Python 转换';%m/%d/%Y';字符串索引转换为日期时间索引

Python 转换';%m/%d/%Y';字符串索引转换为日期时间索引,python,pandas,Python,Pandas,我的索引是datetime字符串,格式为'%m/%d/%Y'('09/26/2007') 当我尝试使用pd.to\u datetime函数pd.to\u datetime(df.index)将索引转换为datetime索引时,我收到了错误消息OutOfBoundsDatetime:outofbounds纳秒时间戳:1-01-01 00:00:00 熊猫似乎无法检测到正确的字符串格式,如何将索引转换为datetime索引 感谢查看错误消息的外观,您的索引中可能有字符串'1/1/0001'。比如说,

我的索引是datetime字符串,格式为
'%m/%d/%Y'('09/26/2007')

当我尝试使用
pd.to\u datetime
函数
pd.to\u datetime(df.index)
将索引转换为datetime索引时,我收到了错误消息
OutOfBoundsDatetime:outofbounds纳秒时间戳:1-01-01 00:00:00

熊猫似乎无法检测到正确的字符串格式,如何将索引转换为datetime索引


感谢查看错误消息的外观,您的索引中可能有字符串
'1/1/0001'
。比如说,

df = pd.DataFrame([1,2], index=['09/26/2007', '1/1/0001'])
pd.to_datetime(df.index)
提高

OutOfBoundsDatetime: Out of bounds nanosecond timestamp: 1-01-01 00:00:00
出现此错误的原因是DatetimeIndex使用的NumPy
datetime64[ns]
s数组不能表示日期0001-01-01。
datetime64[ns]
d类型只能表示

关于这一限制,有一个讨论

目前,推荐的解决方案是使用PeriodIndex而不是DatetimeIndex:

df = pd.DataFrame([1,2], index=['09/26/2007', '1/1/0001'])
df.index = pd.PeriodIndex(df.index, freq='D')
屈服

            0
2007-09-26  1
1-01-01     2

我尝试了
df[df.index=='1/1/0001']
,它是空的。我不确定如何才能找到错误的日期,因为它不应该存在。请尝试
df['dates']=pd.to_datetime(df.index,errors='concurve')
。(这会将无效字符串转换为
NaT
(非即时)对象。)然后查看
df.loc[pd.isnull(df['dates'))]
。谢谢!我找到了那个日期,它错过了日期。该行上的索引为空。经过处理后,
pd.to\u datetime()
工作得非常好。谢谢!
pd.to\u datetime()
可以检测此格式。实际上,我有一行缺少索引,这导致了错误。检查已接受的答案。