[Solved] Difference between data type ‘datetime64[ns]’ and ‘

I have created a TimeSeries in pandas:

In [346]: from datetime import datetime

In [347]: dates = [datetime(2011, 1, 2), datetime(2011, 1, 5), datetime(2011, 1, 7),

 .....: datetime(2011, 1, 8), datetime(2011, 1, 10), datetime(2011, 1, 12)]

In [348]: ts = Series(np.random.randn(6), index=dates)

In [349]: ts


2011-01-02 0.690002

2011-01-05 1.001543

2011-01-07 -0.503087

2011-01-08 -0.622274

2011-01-10 -0.921169

2011-01-12 -0.726213

I’m following on the example from ‘Python for Data Analysis’ book.

In the following paragraph, the author checks the index type:

In [353]: ts.index.dtype

Out[353]: dtype('datetime64[ns]')

When I do exactly the same operation in the console I get:


What is the difference between two types 'datetime64[ns]' and '<M8[ns]' ?

And why do I get a different type?

Enquirer: LLaP


Solution #1:

datetime64[ns] is a general dtype, while <M8[ns] is a specific dtype. General dtypes map to specific dtypes, but may be different from one installation of NumPy to the next.

On a machine whose byte order is little endian, there is no difference between
np.dtype('datetime64[ns]') and np.dtype('<M8[ns]'):

In [6]: np.dtype('datetime64[ns]') == np.dtype('<M8[ns]')
Out[6]: True

However, on a big endian machine, np.dtype('datetime64[ns]') would equal np.dtype('>M8[ns]').

So datetime64[ns] maps to either <M8[ns] or >M8[ns] depending on the endian-ness of the machine.

There are many other similar examples of general dtypes mapping to specific dtypes:
int64 maps to <i8 or >i8, and int maps to either int32 or int64
depending on the bit architecture of the OS and how NumPy was compiled.

Apparently, the repr of the datetime64 dtype has change since the time the book was written to show the endian-ness of the dtype.

Respondent: unutbu

Solution #2:

If this is generating errors in running your code, upgrading pandas and numpy synchronously is likely to solve the conflict in datetime datatype.

Respondent: jnPy

The answers/resolutions are collected from stackoverflow, are licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0 .

Most Popular

To Top
India and Pakistan’s steroid-soaked rhetoric over Kashmir will come back to haunt them both clenbuterol australia bossier man pleads guilty for leadership role in anabolic steriod distribution conspiracy