Saya membaca di file csv dengan beberapa kolom datetime. Saya perlu mengatur tipe data setelah membaca di file, tetapi datetimes tampaknya menjadi masalah. Misalnya:
headers = ['col1', 'col2', 'col3', 'col4']
dtypes = ['datetime', 'datetime', 'str', 'float']
pd.read_csv(file, sep='\t', header=None, names=headers, dtype=dtypes)
Ketika dijalankan memberikan kesalahan:
TypeError: tipe data "datetime" tidak dipahami
Mengonversi kolom setelah fakta, melalui pandas.to_datetime () bukanlah opsi Saya tidak tahu kolom mana yang akan menjadi objek datetime. Informasi tersebut dapat berubah dan berasal dari apapun yang menginformasikan daftar dtypes saya.
Atau, saya telah mencoba memuat file csv dengan numpy.genfromtxt, mengatur dtypes dalam fungsi itu, dan kemudian mengonversinya ke pandas.dataframe tetapi itu mengacaukan data. Bantuan apa pun sangat dihargai!
pandas.core.datetools.to_datetime
tidak digunakan lagi, gunakanpd.datetools.to_datetime
saja. seperti ini:date_parser = pd.to_datetime
converters
parameter di mana Anda dapat menentukan kolom mana yang memiliki konverter mana. parse_dates sangat membantu dan menangani data yang buruk tetapi lebih lambat karena itu menguji dan menyimpulkan setiap nilai gist.github.com/gjreda/7433f5f70299610d9b6bAda
parse_dates
parameterread_csv
yang memungkinkan Anda untuk menentukan nama kolom yang ingin Anda perlakukan sebagai tanggal atau waktu:sumber
Anda dapat mencoba meneruskan tipe sebenarnya alih-alih string.
Tetapi akan sangat sulit untuk mendiagnosis ini tanpa data Anda untuk diotak-atik.
Dan sungguh, Anda mungkin ingin panda mengurai tanggal menjadi Stempel Waktu, jadi itu mungkin:
sumber
Saya mencoba menggunakan opsi dtypes = [datetime, ...], tapi
Saya mengalami kesalahan berikut:
Satu-satunya perubahan yang harus saya lakukan adalah mengganti datetime dengan datetime.datetime
sumber
AttributeError: type object 'datetime.datetime' has no attribute 'datetime'