2013-04-23 34 views
11

Các đoạn mã sau:Không thể chuyển đổi ngày để datetime64

import pandas as pd 
import numpy as np 

data = pd.DataFrame({'date': ('13/02/2012', '14/02/2012')}) 
data['date'] = data['date'].astype('datetime64') 

hoạt động tốt trên một máy (cửa sổ) và không hoạt động trên một (linux). Cả hai numpy và gấu trúc được cài đặt trên cả hai.

Các lỗi tôi nhận được là:

ValueError: Cannot create a NumPy datetime other than NaT with generic units 

lỗi này có nghĩa gì? Tôi thấy nó lần đầu tiên và không có nhiều trên web tôi có thể tìm thấy. Có một số phụ thuộc bị thiếu?

+0

Các phiên bản có màu sắc giống nhau trên cả hai máy? ('print np .__ version__'). Nếu tôi nhớ chính xác, 'datetime64' là một bổ sung khá gần đây. – mgilson

+0

1.6.2 trên máy nơi nó hoạt động và 1.7.0 trên máy khác. – sashkello

Trả lời

16

Thực hiện việc này thay thế. Pandas giữ dữ liệu nội bộ như datetime64[ns]. Chuyển đổi như thế này là rất lỗi (vì các vấn đề trong phiên bản numpy khác nhau, đặc biệt là 1.6.2). Sử dụng các thói quen gấu trúc, sau đó hoạt động như thesee là các đối tượng datetime thực tế. Bạn đang cố làm gì vậy?

In [30]: pandas.to_datetime(data['date']) 
Out[30]: 
0 2012-02-13 00:00:00 
1 2012-02-14 00:00:00 
Name: date, dtype: datetime64[ns] 
+0

Đã hoạt động hoàn hảo! Cảm ơn! Tôi chỉ có một tập tin với ngày tháng như chuỗi và do đó chuyển đổi chúng thành các đối tượng mà tôi có thể làm việc ... Chúc mừng :) – sashkello

+0

Chúc mừng năm 2000, bạn đời – sashkello

+0

ha .... cũng có thể thử chuyển '' parse_dates = True'' thành read_csv (nhiều tùy chọn hơn trong tài liệu) – Jeff

Các vấn đề liên quan