Uploaded image for project: 'Apache Arrow'
  1. Apache Arrow
  2. ARROW-2106

[Python] pyarrow.array can't take a pandas Series of python datetime objects.

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 0.8.0
    • Fix Version/s: 0.9.0
    • Component/s: None

      Description

      > import pyarrow
      > from datetime import datetime
      > import pandas
      > dt = pandas.Series([datetime(2017, 12, 1), datetime(2017, 12, 3), datetime(2017, 12, 15)], dtype=object)
      > pyarrow.array(dt, from_pandas=True)

      Raises following:

      ---------------------------------------------------------------------------
      ArrowInvalid Traceback (most recent call last)
      <ipython-input-8-0d49f7fc5c49> in <module>()
      ----> 1 pyarrow.array(dt, from_pandas=True)

      array.pxi in pyarrow.lib.array()

      array.pxi in pyarrow.lib._ndarray_to_array()

      error.pxi in pyarrow.lib.check_status()

      ArrowInvalid: Error inferring Arrow type for Python object array. Got Python object of type datetime but can only handle these types: string, bool, float, int, date, time, decimal, list, array

      As far as I can tell, the issue seems to be the call to PyDate_CheckExact here (instead of using PyDate_Check):

      https://github.com/apache/arrow/blob/3098c1411930259070efb571fb350304b18ddc70/cpp/src/arrow/python/numpy_to_arrow.cc#L1005

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                xhochy Uwe L. Korn
                Reporter:
                nmichaud Naveen Michaud-Agrawal
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: