MYインデックスはフォーマット'%m/%d/%Y' ('09/26/2007')
変換は「%M /%D /%Y」文字列インデックス
と日時の文字列ですが、私はエラーを得ましたメッセージOutOfBoundsDatetime: Out of bounds nanosecond timestamp: 1-01-01 00:00:00
パンダが正しい文字列形式を検出できないようですが、インデックスをdatetimeインデックスに変換する方法はありますか?
おかげ
MYインデックスはフォーマット'%m/%d/%Y' ('09/26/2007')
変換は「%M /%D /%Y」文字列インデックス
と日時の文字列ですが、私はエラーを得ましたメッセージOutOfBoundsDatetime: Out of bounds nanosecond timestamp: 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日付0001-01-01を表すことができないnumpyのdatetime64[ns]
の配列を使用するため、このエラーが発生します。 datetime64[ns]
dtypeは、dates in the range [1678 AD, 2262 AD]
のみを表します。
この制限については、pandas github issueがあります。今のところ
、推奨される解決策は、代わりDatetimeIndexのPeriodIndex使用することである。
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']'を試しました、それは空です。私はそれが存在してはならないので、その悪い日付をどのように見つけることができるかわかりません。 – user5025141
'df ['dates'] = pd.to_datetime(df.index、errors = 'coerce')'を試してください。 (これは、無効な文字列を 'NaT'(not-a-time)オブジェクトに変換します。)' df.loc [pd.isnull(df ['dates'])] 'を見てください。 – unutbu
ありがとう!私はその日付を見つけた、それは日付を逃す。その行の索引は空です。それを処理した後、 'pd.to_datetime()'は完璧に動作します。どうもありがとう! – user5025141
'pd.to_datetime()'このフォーマットを検出することができるが。実際には、エラーを引き起こす1行のインデックスがありません。受け入れられた答えを確認してください。 – user5025141