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

[Python] Creating a pyarrow.Array with timestamp of different unit is not casted

    Details

      Description

      This is similar to ARROW-1680 but slightly different in that an error is not raised but the unit will still remain unchanged only when using a timezone

      In [47]: us_with_tz = pa.timestamp('us', tz='America/New_York')
      
      In [48]: s = pd.Series([val])
      
      In [49]: s_nyc = s.dt.tz_localize('tzlocal()').dt.tz_convert('America/New_York')
      
      In [50]: arr = pa.Array.from_pandas(s_nyc, type=us_with_tz)
      
      In [51]: arr.type
      Out[51]: TimestampType(timestamp[ns, tz=America/New_York])
      
      In [52]: arr2 = pa.Array.from_pandas(s, type=pa.timestamp('us'))
      
      In [53]: arr2.type
      Out[53]: TimestampType(timestamp[us])
      

      There is an easy workaround to apply the cast after creating the pyarrow.Array, which seems to work fine

      In [54]: arr = pa.Array.from_pandas(s_nyc).cast(us_with_tz, safe=False)
      
      In [55]: arr.type
      Out[55]: TimestampType(timestamp[us, tz=America/New_York])
      

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                wesmckinn Wes McKinney
                Reporter:
                bryanc Bryan Cutler
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: