You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@arrow.apache.org by "Antoine Pitrou (Jira)" <ji...@apache.org> on 2019/11/05 13:22:00 UTC
[jira] [Resolved] (ARROW-7022) [Python] __arrow_array__ does not
work for ExtensionTypes in Table.from_pandas
[ https://issues.apache.org/jira/browse/ARROW-7022?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Antoine Pitrou resolved ARROW-7022.
-----------------------------------
Resolution: Fixed
Issue resolved by pull request 5753
[https://github.com/apache/arrow/pull/5753]
> [Python] __arrow_array__ does not work for ExtensionTypes in Table.from_pandas
> ------------------------------------------------------------------------------
>
> Key: ARROW-7022
> URL: https://issues.apache.org/jira/browse/ARROW-7022
> Project: Apache Arrow
> Issue Type: Bug
> Components: Python
> Reporter: Joris Van den Bossche
> Assignee: Joris Van den Bossche
> Priority: Major
> Labels: pull-request-available
> Fix For: 1.0.0
>
> Time Spent: 40m
> Remaining Estimate: 0h
>
> When someone has a custom ExtensionType defined in Python, and an array class that gets converted to that (through {{\_\_arrow_array\_\_}}), the conversion in pyarrow works with the array class, but not yet for the array stored in a pandas DataFrame.
> Eg using my definition of ArrowPeriodType in https://github.com/pandas-dev/pandas/pull/28371, I see:
> {code}
> In [15]: pd_array = pd.period_range("2012-01-01", periods=3, freq="D").array
> In [16]: pd_array
> Out[16]:
> <PeriodArray>
> ['2012-01-01', '2012-01-02', '2012-01-03']
> Length: 3, dtype: period[D]
> In [17]: pa.array(pd_array)
> Out[17]:
> <pyarrow.lib.ExtensionArray object at 0x7f657cf78768>
> [
> 15340,
> 15341,
> 15342
> ]
> In [18]: df = pd.DataFrame({'periods': pd_array})
> In [19]: pa.table(df)
> ...
> ArrowInvalid: ('Could not convert 2012-01-01 with type Period: did not recognize Python value type when inferring an Arrow data type', 'Conversion failed for column periods with type period[D]')
> {code}
> (this is working correctly for array objects whose {{\_\_arrow_array\_\_}} is returning a built-in pyarrow Array).
--
This message was sent by Atlassian Jira
(v8.3.4#803005)