Closed
Description
Code Sample, a copy-pastable example if possible
The following breaks in 0.24.0 but worked in 0.23.4:
import pandas as pd
print(pd.__version__)
empty_index = pd.to_datetime([], utc=True)
index_df1 = pd.DataFrame({'index_col': empty_index}, index=empty_index)
index_temp = pd.date_range(start='2017-01-01', periods=10, freq='H', tz="utc")
df1 = pd.DataFrame({'temp': 1.0}, index=index_temp)
pd.merge_asof(left=df1, right=index_df1, left_index=True, right_index=True)
Problem description
0.24.0:
>>> import pandas as pd
>>> print(pd.__version__)
0.24.0
>>> empty_index = pd.to_datetime([], utc=True)
>>> index_df1 = pd.DataFrame({'index_col': empty_index}, index=empty_index)
>>> index_temp = pd.date_range(start='2017-01-01', periods=10, freq='H', tz="utc")
>>> df1 = pd.DataFrame({'temp': 1.0}, index=index_temp)
>>> pd.merge_asof(left=df1, right=index_df1, left_index=True, right_index=True)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/philngo/.pyenv/versions/3.6.6/lib/python3.6/site-packages/pandas/core/reshape/merge.py", line 462, in merge_asof
return op.get_result()
File "/Users/philngo/.pyenv/versions/3.6.6/lib/python3.6/site-packages/pandas/core/reshape/merge.py", line 1280, in get_result
concat_axis=0, copy=self.copy)
File "/Users/philngo/.pyenv/versions/3.6.6/lib/python3.6/site-packages/pandas/core/internals/managers.py", line 2061, in concatenate_block_managers
concatenate_join_units(join_units, concat_axis, copy=copy),
File "/Users/philngo/.pyenv/versions/3.6.6/lib/python3.6/site-packages/pandas/core/internals/concat.py", line 240, in concatenate_join_units
for ju in join_units]
File "/Users/philngo/.pyenv/versions/3.6.6/lib/python3.6/site-packages/pandas/core/internals/concat.py", line 240, in <listcomp>
for ju in join_units]
File "/Users/philngo/.pyenv/versions/3.6.6/lib/python3.6/site-packages/pandas/core/internals/concat.py", line 223, in get_reindexed_values
fill_value=fill_value)
File "/Users/philngo/.pyenv/versions/3.6.6/lib/python3.6/site-packages/pandas/core/algorithms.py", line 1579, in take_nd
return arr.take(indexer, fill_value=fill_value, allow_fill=allow_fill)
File "/Users/philngo/.pyenv/versions/3.6.6/lib/python3.6/site-packages/pandas/core/arrays/datetimelike.py", line 589, in take
fill_value = self._validate_fill_value(fill_value)
File "/Users/philngo/.pyenv/versions/3.6.6/lib/python3.6/site-packages/pandas/core/arrays/datetimes.py", line 656, in _validate_fill_value
"Got '{got}'.".format(got=fill_value))
ValueError: 'fill_value' should be a Timestamp. Got '-9223372036854775808'.
The behavior in 0.24.0 might make sense - I don't know if there was some underlying decision about why the above shouldn't be allowed - but since it worked in 0.23.4 I figured I would check here to see if it was an unintended regression. That's my suspicion, but if it is intended, maybe it would be worth catching the error a bit earlier and giving a better error message?
Expected Output
0.23.4:
>>> import pandas as pd
>>> print(pd.__version__)
0.23.4
>>> import pandas as pd
>>> empty_index = pd.to_datetime([], utc=True)
>>> index_df1 = pd.DataFrame({'index_col': empty_index}, index=empty_index)
>>> index_temp = pd.date_range(start='2017-01-01', periods=10, freq='H', tz="utc")
>>> df1 = pd.DataFrame({'temp': 1.0}, index=index_temp)
>>> pd.merge_asof(left=df1, right=index_df1, left_index=True, right_index=True)
temp index_col
2017-01-01 00:00:00+00:00 1.0 NaT
2017-01-01 01:00:00+00:00 1.0 NaT
2017-01-01 02:00:00+00:00 1.0 NaT
2017-01-01 03:00:00+00:00 1.0 NaT
2017-01-01 04:00:00+00:00 1.0 NaT
2017-01-01 05:00:00+00:00 1.0 NaT
2017-01-01 06:00:00+00:00 1.0 NaT
2017-01-01 07:00:00+00:00 1.0 NaT
2017-01-01 08:00:00+00:00 1.0 NaT
2017-01-01 09:00:00+00:00 1.0 NaT
Metadata
Metadata
Assignees
Labels
No labels